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

Package templates come with a configuration for the Webpack bundler. In package.json, webpack and webpack-cli are added as default development dependencies to build your package. When working with various file extensions, you may have to include special modules called loaders. For better development experience, you can also install webpack-dev-server.

Links:

TypeScript

As we recommend TypeScript as a language for package development, there's an option to create a package with a --ts flag. Among other things, it adds two new dependencies: typescript (provides the language support) and ts-loader (a file loader for webpack). Likely, these are not the only libraries you will use when writing in TypeScript. For example, 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 contains packages with examples: Viewers and Charts. 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: