rdkit
A collection of chemoinformatics and machine-learning software written in C++ and Python
What it is and what it does
RDKit is a mature chemoinformatics library that wraps C++ computational chemistry code in a Python interface. It handles molecular structure parsing (from SMILES and other formats), property calculation, substructure matching, and visualization. The package is distributed as precompiled wheels containing platform-specific dynamic libraries, making installation straightforward on supported systems without requiring a C++ compiler.
The library is commonly used in computational chemistry, drug discovery, and machine-learning pipelines where chemical structure data must be processed programmatically. It depends on numpy for numerical operations and Pillow for image rendering. Active maintenance and broad platform coverage (Linux, macOS, Windows; multiple architectures) make it a stable choice for production chemoinformatics workflows.
Use it for:
- Parse and manipulate molecular structures from SMILES strings or other chemical formats in drug discovery pipelines.
- Calculate molecular descriptors and fingerprints for machine-learning models predicting chemical properties.
- Perform substructure searches and similarity comparisons across chemical compound databases.
- Visualize molecular structures as 2D images for reports or interactive applications.
- Validate chemical structure data and standardize molecular representations in data preprocessing workflows.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
RDKit is a chemoinformatics toolkit providing C++ and Python libraries for molecular structure manipulation, analysis, and machine-learning workflows on chemical data.
Yes. RDKit is actively maintained, widely used in chemoinformatics, has no known vulnerabilities, and offers precompiled wheels for modern Python on major platforms. Install friction is moderate but manageable; the BSD-3-Clause license is permissive. Install it if you work with molecular structures, chemical data, or computational chemistry.
Install
rdkit on PyPI
pip
pip install rdkituv
uv add rdkitpoetry
poetry add rdkitInstalling rdkit
Before you install
Medium install friction due to compiled C++ dependencies requiring platform-specific wheels. Wheels are available for modern Python versions (3.10–3.14) across Linux (x86_64, aarch64), macOS (Intel and ARM), and Windows. Active maintenance with recent releases; last update 11 days ago.
License in practice
BSD-3-Clause is permissive, allowing commercial and private use with minimal restrictions. You must include the license notice in distributions but face no copyleft obligations.
Quickstart
pip install rdkit
from rdkit import Chem
mol = Chem.MolFromSmiles('C1CCC1')
print(Chem.MolToMolBlock(mol))
Requires glibc >= 2.28 on Linux; macOS 10.15+ on Intel or macOS 11+ on ARM; no explicit Python version constraint declared but wheels exist for Python 3.10–3.14.
Verify before relying
- Whether the package supports Python versions earlier than 3.10 (wheels shown are 3.10–3.14 only, but requires_python is unspecified)
- Whether numpy and Pillow are hard runtime dependencies or optional for specific features
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | not specified |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — numpy, Pillow |
| Maintenance | actively maintained — 11 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 11,469,327/month — #1,391 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: rdkit-2026.3.5-cp310-cp310-macosx_11_0_arm64.whl; rdkit-2026.3.5-cp310-cp310-manylinux_2_28_aarch64.whl; rdkit-2026.3.5-cp310-cp310-manylinux_2_28_x86_64.whl; rdkit-2026.3.5-cp310-cp310-win_amd64.whl; rdkit-2026.3.5-cp311-cp311-macosx_11_0_arm64.whl; rdkit-2026.3.5-cp311-cp311-manylinux_2_28_aarch64.whl; rdkit-2026.3.5-cp311-cp311-manylinux_2_28_x86_64.whl; rdkit-2026.3.5-cp311-cp311-win_amd64.whl; rdkit-2026.3.5-cp312-cp312-macosx_11_0_arm64.whl; rdkit-2026.3.5-cp312-cp312-manylinux_2_28_aarch64.whl; rdkit-2026.3.5-cp312-cp312-manylinux_2_28_x86_64.whl; rdkit-2026.3.5-cp312-cp312-win_amd64.whl; rdkit-2026.3.5-cp313-cp313-macosx_11_0_arm64.whl; rdkit-2026.3.5-cp313-cp313-manylinux_2_28_aarch64.whl; rdkit-2026.3.5-cp313-cp313-manylinux_2_28_x86_64.whl; rdkit-2026.3.5-cp313-cp313-win_amd64.whl; rdkit-2026.3.5-cp314-cp314-macosx_11_0_arm64.whl; rdkit-2026.3.5-cp314-cp314-manylinux_2_28_aarch64.whl; rdkit-2026.3.5-cp314-cp314-manylinux_2_28_x86_64.whl; rdkit-2026.3.5-cp314-cp314-win_amd64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
chembl-structure-pipelineStandardizes and salt-strips molecular…
permissive · top 15,000 on PyPI
datamolDatamol provides a pythonic layer on top of…
permissive · top 15,000 on PyPI
pdbeccdutilsParse and process small molecule definitions…
permissive · top 15,000 on PyPI
rdkit-pypiProvides precompiled wheels for Linux, macOS,…
permissive · top 15,000 on PyPI
aimsim-coreProvides core molecular featurization and…
permissive · top 15,000 on PyPI
openbabel-wheelProvides prebuilt Python wheels for OpenBabel,…
copyleft · top 15,000 on PyPI
PubChemPyPubChemPy is a Python wrapper around the…
permissive · top 5,000 on PyPI
mordredcommunityCalculates molecular descriptors from chemical…
permissive · top 15,000 on PyPI
epam-indigoIndigo is a universal cheminformatics library…
permissive · top 15,000 on PyPI
chempropChemprop trains and deploys message passing…
permissive · top 15,000 on PyPI