# Installation
## Python
Install from PyPI — no RDKit or any C/C++ dependency required:
```bash
pip install renkin
```
Requires Python 3.9+ and a modern platform. Pre-built wheels are provided for:
| Linux x86_64 | 3.9–3.13 | ✅ GitHub Actions |
| macOS arm64 (Apple Silicon) | 3.9–3.13 | ✅ GitHub Actions |
| macOS x86_64 | 3.9–3.13 | ✅ GitHub Actions |
| Windows x86_64 | 3.9–3.13 | ✅ GitHub Actions |
If your platform isn't listed, pip will attempt to build from source (requires Rust toolchain).
## Rust
Add to `Cargo.toml`:
```toml
[dependencies]
renkin = "0.1"
```
Or use cargo add:
```bash
cargo add renkin
```
## JavaScript / Node.js
```bash
npm install renkin
```
Or with yarn/pnpm:
```bash
yarn add renkin
pnpm add renkin
```
## WebAssembly (browser)
The WASM module is bundled with the npm package. For direct browser use without npm:
```html
<script type="module">
import init, { find_routes } from 'https://unpkg.com/renkin@latest/renkin.js';
await init('https://unpkg.com/renkin@latest/renkin_bg.wasm');
const result = JSON.parse(find_routes("CC(=O)Oc1ccccc1C(=O)O", 5, 3, 0));
console.log(result);
</script>
```
## Building from Source
Requires Rust 1.75+ (stable):
```bash
git clone https://github.com/kent-tokyo/renkin
cd renkin
cargo build --release
```
For Python wheels (requires [maturin](https://github.com/PyO3/maturin)):
```bash
pip install maturin
maturin develop --features python
```
For WASM (requires [wasm-pack](https://rustwasm.github.io/wasm-pack/)):
```bash
wasm-pack build --target web --no-default-features
python3 -m http.server 8080 # then visit http://localhost:8080/demo/
```