RDKit
---
A high-level library for performing common RDKit tasks such as SMILES parsing, molecule normalization, etc. Uses
the C++ API via bindings from [rdkit-sys](https://crates.io/crate/rdkit-sys).
Notice: Requires rdkit 2023.09.1 or higher (like Ubuntu Noble 24.04)
Prerequisites
---
On a Mac:
brew install rdkit
On Linux you will need a custom build of rdkit with static libraries. At the moment, we have some pre-compiled tar balls
available for AMD64 and ARM64 for the latest RKDit which get the job done for our CI (Note: these have been compiled on
Ubuntu 22.04, not 14.04...):
https://rdkit-rs-debian.s3.eu-central-1.amazonaws.com/rdkit_2024_03_3_ubuntu_14_04_amd64.tar.gz
https://rdkit-rs-debian.s3.eu-central-1.amazonaws.com/rdkit_2024_03_3_ubuntu_14_04_arm64.tar.gz
Release Both rdkit and rdkit-sys
---
The `rdkit-sys` crate is a member of the `rdkit` workspace. All crates in the workspace should move in lockstep versions
for simplicity's sake, making it easy to tell which crates are compatible.
Managing multiple crates in a single repository:
rdkit % cargo workspaces version patch
rdkit % cargo publish
rdkit % cd rdkit-sys
rdkit-sys % cargo publish
## Formatting
### C++ formatting
Clang formatting should be automatically applied when saving files in VSCode if you have the `clangd` extension installed. If you don't have it installed, you can install it from the marketplace. Else by right-clicking on the file and selecting `Format Document` should do the work.
### Rust formatting
Rust formatting should be automatically applied when saving files in VSCode if you have the `rust-analyzer` extension installed. Else by running `cargo fmt` in the root directory the entire project will be formatted.