rdkit

Cheminformatics functionality for PostgreSQL.

Overview

PackageVersionCategoryLicenseLanguage
rdkit202503.6FEATBSD 3-ClauseC++
IDExtensionBinLibLoadCreateTrustRelocSchema
2930rdkitNoYesNoYesNoYes-
Relatedage hll rum pg_graphql pg_jsonschema jsquery pg_hint_plan hypopg

d13/u24/el10 rdkit build by pigsty, u24/el10 deps on inchi

Version

TypeRepoVersionPG VerPackageDeps
EXTMIXED202503.61817161514rdkit-
RPMPIGSTY202503.61817161514rdkit_$v-
DEBPGDG202503.61817161514postgresql-$v-rdkit-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el8.aarch64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el9.x86_64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el9.aarch64PIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISSPIGSTY MISS
el10.x86_64
el10.aarch64
d12.x86_64PGDG MISSPGDG MISS
d12.aarch64PGDG MISSPGDG MISS
d13.x86_64
d13.aarch64
u22.x86_64PGDG MISSPGDG MISS
u22.aarch64PGDG MISSPGDG MISS
u24.x86_64
u24.aarch64

Build

You can build the RPM / DEB packages for rdkit using pig build:

pig build pkg rdkit         # build RPM / DEB packages

Install

You can install rdkit directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:

pig repo add pgsql -u          # Add repo and update cache

Install the extension using pig or apt/yum/dnf:

pig install rdkit;          # Install for current active PG version
pig ext install -y rdkit -v 18  # PG 18
pig ext install -y rdkit -v 17  # PG 17
pig ext install -y rdkit -v 16  # PG 16
pig ext install -y rdkit -v 15  # PG 15
pig ext install -y rdkit -v 14  # PG 14
dnf install -y rdkit_18       # PG 18
dnf install -y rdkit_17       # PG 17
dnf install -y rdkit_16       # PG 16
dnf install -y rdkit_15       # PG 15
dnf install -y rdkit_14       # PG 14
apt install -y postgresql-18-rdkit   # PG 18
apt install -y postgresql-17-rdkit   # PG 17
apt install -y postgresql-16-rdkit   # PG 16
apt install -y postgresql-15-rdkit   # PG 15
apt install -y postgresql-14-rdkit   # PG 14

Create Extension:

CREATE EXTENSION rdkit;

Usage

RDKit ships a PostgreSQL cartridge for cheminformatics storage, search, fingerprints, and descriptors. The cartridge docs remain the main upstream usage reference; the 2025.03.6 release notes do not call out cartridge-specific user-facing changes.

Create The Extension

CREATE EXTENSION rdkit;

The cartridge adds chemistry-specific types including mol, bfp, and sfp.

Core Search Operators

The cartridge documentation covers:

  • @> and <@ for substructure matching.
  • @= for exact molecular equality.
  • %, <%>, and <#> style fingerprint similarity and KNN operators for similarity search.

These are typically combined with GiST indexes over fingerprint columns.

Fingerprints And Similarity

Common fingerprint functions documented for SQL usage include morgan_fp, morganbv_fp, featmorgan_fp, rdkit_fp, atompair_fp, torsion_fp, layered_fp, and maccs_fp.

Example from the cartridge docs:

SELECT tanimoto_sml(
  morganbv_fp('c1ccccc1'::mol),
  morganbv_fp('c1ccccc1O'::mol)
);

Descriptors And Validation

The cartridge docs also expose validation and descriptor helpers such as:

  • is_valid_smiles()
  • is_valid_ctab()
  • is_valid_smarts()
  • mol_amw()
  • mol_hba()
  • mol_numrings()

These functions are the main user-facing surface for SQL analytics on molecular structures.


Last Modified 2026-04-19: update extension stub docs (9f178c3)