Skip to content
JS wrappers around parts of the RDKit
HTML JavaScript TeX C++ CSS CMake Other
Branch: master
Clone or download
greglandrum Merge pull request #21 from bmiles/readme_updates
Added usage to the readme, tidied things up
Latest commit 417b79f Feb 19, 2019

-------- Update 15/11/2018 Dear All,

Greg and I, consider this project is important for the community. We will transfer it to RDKit repo in coming months.


Port of RDKit to JavaScript using emscripten and WebAssembly.


npm install rdkit


Using NodeJS

// applications.js
const RDKit = require('RDKit');
await RDKit.load();

var my_mol = "COc1ccc(CCN(C(=O)CCCBr)C2c3cc(NC(C)=O)c([N+](=O)[O-])cc3OC(C)(C)C2O)cc1";

function atoms(smi) {
  var mol = RDKit.Mol.fromSmiles(smi);
  var num_atoms = mol.getNumAtoms();
  console.log( num_atoms );


// returns 37



For now, this library can only be compiled from a Unix system (no Windows). You need to have on your system:

  • Node.js 8 or later
  • cmake
  • make

Emscripten installation & activation

Install emscripten using those instructions:
Do not forget to activate it with ./emsdk activate latest.

Installation of dependencies

npm install
npm run install-deps

This will install all required dependencies (including RDKit itself) and compile the RDKit library files.

Compilation of WebAssembly module

npm run build

Execute tests

# compiles the project and executes tests
npm run test

# executes tests without compiling (faster if compilation was already done)
npm run test-only

Want to try it without compilation ? It's already possible

There is the first example in the visualizer project there:

You can draw a molecule in the bottom module which will generate the 3D model using MMFF force field.

another example of javascript can be found there:
thanks to iwatobipen!
source code:

Try RDKitjs interactively with RunKit

You can also use nodejs:
the current module is available for npm / nodejs:

Current stability status

This project is not stable and still under heavy development.

Feature requests / help / missing RDKit functions

If you want to contribute or need RDKit functions not already mapped please add a comment in the issues of this project.

You can’t perform that action at this time.