Skip to main content

Library tour

This tour takes you through common libraries used to develop applications on top of the platform. Note that the list is not comprehensive, and other third-party tools may be used along with the ones we mention.

Datagrok toolkit

First of all, to work with your project, you need a utility to publish packages to the platform — datagrok-tools. See its documentation for installation instructions and usage examples. Upon completing package setup, you will see a set of default dependencies listed in the package.json file. One of them is datagrok-api that provides TypeScript API to the platform's core functionality. Whenever you need details about a particular class or endpoint, consult the API reference.

Links:

Bundlers

Packages are bundled by rspack with swc, through the single @datagrok/build-config development dependency: the configuration is shared by every Datagrok package, and a package adds an rspack.config.js only for what differs (extra externals, WebAssembly, JSX). CSS, images and .wasm files are handled out of the box; see the @datagrok/build-config README.

Links:

TypeScript

As we recommend TypeScript as a language for package development, there's an option to create a package with a --ts flag. TypeScript itself comes with @datagrok/build-config: swc transpiles the sources when bundling, and npm run typecheck runs the TypeScript compiler (tsc --noEmit) separately. If one of the libraries you want to work with has not been typed yet, check out the Definitely Typed resource, which provides type definitions for popular packages.

Links:

Visualization

The platform comes with a diverse set of visualizations (see the Viewers article). Moreover, it is possible to create a custom viewer using our API. For this task, you can use such libraries as d3, three.js, or echarts. Datagrok’s public repository offers an example implementation in the Charts package. For scientific applications, you may find useful such projects as NGL, RDKit, and OpenChemLib, but first look at what solutions already exist to integrate with them (see the Cheminformatics page).

Links: