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: