Ultra-fast retrosynthesis engine for computer-aided synthesis planning (CASP) — pure Rust, Python bindings via PyO3
Project description
RENKIN — Retrosynthetic Exploration Network for Knowledge-Informed Navigation
Computer-Aided Synthesis Planning (CASP) · Pure Rust · WebAssembly · Python
Named after 錬金 (れんきん, renkin) — Japanese for alchemy: just as alchemists transformed base metals into gold, RENKIN transforms target molecules back into cheap starting materials.
日本語版 README · Documentation · Live Demo →
What is RENKIN?
RENKIN is an open-source retrosynthesis engine for computer-aided synthesis planning (CASP) that automatically discovers optimal chemical reaction routes from a target molecule back to cheap, commercially available starting materials.
Built entirely in Rust with the chematic cheminformatics crate. Zero C/C++ dependencies. All crates enforce #![forbid(unsafe_code)] — compiler-verified Pure Safe Rust throughout.
→ Try the Live Playground — runs entirely in WebAssembly, no installation needed.
→ Full Documentation — API reference, examples, benchmark.
Installation
pip install renkin # Python
cargo add renkin # Rust
npm install renkin # JavaScript / Node.js
Quick Start
import renkin
result = renkin.find_routes(
"CC(=O)Oc1ccccc1C(=O)O", # Aspirin
depth=5,
max_routes=3,
)
for route in result["routes"]:
for step in route["steps"]:
print(f" {step['target']} → {' + '.join(step['precursors'])} [{step['rule']}]")
import init, { find_routes } from './pkg/renkin.js';
await init();
const result = JSON.parse(find_routes("CC(=O)Oc1ccccc1C(=O)O", 5, 3, 0));
./target/release/renkin --target "CC(=O)Oc1ccccc1C(=O)O" --depth 5 \
--templates data/templates_extracted_5000.smi --format tree
Target: CC(=O)Oc1ccccc1C(=O)O
Routes found: 3
Route 1 [score=1.02, depth=1]
OC(=O)c1ccccc1OC(=O)C
└── [extracted_169]
├── OC(=O)C ✓ BB
└── [OH]c1ccccc1C(=O)O ✓ BB
Route 2 [score=1.02, depth=1]
OC(=O)c1ccccc1OC(=O)C
└── [extracted_145]
├── CC(=O)Cl ✓ BB
└── [OH]c1ccccc1C(=O)O ✓ BB
Route 3 [score=1.03, depth=1]
OC(=O)c1ccccc1OC(=O)C
└── [extracted_238]
├── c1cccc(c1O)C(O)=O ✓ BB
└── C([OH])(=O)C ✓ BB
Use --format mermaid for GitHub/Notion-compatible flowcharts.
Constraint-based Search
Restrict routes by the element composition of their building blocks.
Default search — all 5 routes for biphenyl:
renkin --target "c1ccc(-c2ccccc2)cc1" --templates data/templates_extracted_5000.smi --format tree
Routes found: 5
Route 1 [score=1.00, depth=1] c1ccccc1Br + c1c(B(O)O)cccc1
Route 2 [score=1.03, depth=1] c1ccccc1Br + c1c(B(O)O)cccc1
Route 3 [score=1.06, depth=1] c1cc(Cl)ccc1 + c1c(B(O)O)cccc1
Route 4 [score=1.08, depth=1] c1(I)ccccc1 + c1c(B(O)O)cccc1
Route 5 [score=1.08, depth=1] c1ccccc1Br + c1(B2OC(C(C)(C)O2)(C)C)ccccc1
Constrained search — boronic-acid coupling, no Br or I starting materials:
renkin --target "c1ccc(-c2ccccc2)cc1" --templates data/templates_extracted_5000.smi \
--require-elements "B" --avoid-elements "Br,I" --format tree
Routes found: 1
Route 1 [score=1.06, depth=1]
c1ccccc1-c2ccccc2
└── [extracted_398]
├── c1cc(Cl)ccc1 ✓ BB
└── c1c(B(O)O)cccc1 ✓ BB
Constraints compose freely and are enforced in two layers:
--avoid-elementsprunes expansions during search when a BB precursor contains a forbidden element (no dead-end nodes added to the heap).- A final route-level post-filter is still applied for correctness.
--require-elementsis a route-level post-filter only.
Add --verbose to print search statistics (nodes expanded, elapsed time) to stderr. Performance counters are available in native builds only; disabled in WASM.
Key Features
| Feature | Detail |
|---|---|
| Pure Safe Rust | #![forbid(unsafe_code)] on all crates — compiler-enforced, zero C/C++ dependencies |
| A* / AND-OR Tree Search | Retro*-equivalent algorithm, proven more efficient than MCTS |
| SA Score heuristic | Admissible h = Σ(1 + 0.5·(sa−1)/9) guides toward accessible precursors |
| SA Score memoization | Per-search cache avoids redundant SA Score computation on repeated intermediates |
| Beam search | --beam-width N for memory-bounded exploration; SmallVec<[FEntry; 6]> stack-allocated frontier |
| 5,000 reaction templates | Auto-extracted from USPTO-50k training set via rdchiral; frequency-weighted beam priority |
| Template frequency weighting | Phase A: weight = ln(count+1) from USPTO training set; high-frequency templates preferred in beam search (+19 pp) |
| Element pre-screening | required_elements bitset skips impossible rules before SMARTS matching |
| apply_retro memoization | SMARTS VF2 skip on repeated intermediates — per-search cache |
| Arc path sharing | Persistent linked-list; O(1) per child instead of O(depth) clone |
| FxHashMap / FxHashSet | rustc-hash replacing std collections throughout for faster hashing |
| Auto template extraction | scripts/extract_templates.py — rdchiral + chematic-compatible simplification |
| Graph-based biaryl cleavage | Bridge-bond DFS for correct Suzuki disconnection |
| Parallel rule application | rayon on non-WASM; sequential fallback on wasm32 |
| tract-onnx NN scorer | Pure Rust ONNX inference (no C++ dep) — optional --scorer flag for Phase B template relevance scoring |
| Route visualization | --format tree ASCII tree · --format mermaid GitHub/Notion flowchart |
building_blocks in JSON |
Each route includes the leaf starting-material SMILES — no manual step parsing needed |
| MCP server | renkin-mcp binary — AI agents (Claude, etc.) call retrosynthesis over JSON-RPC stdio |
| Tetrahedral stereo @/@@ | Full stereochemistry support via chematic 0.4.16 |
| Python | pip install renkin — pre-built wheels for Linux/macOS/Windows |
| WASM | ~500 KB bundle — runs in the browser at near-native speed |
| 509 building blocks | Aryl halides, boronic acids, heterocycles, amines, acids, amino acids |
Benchmark
USPTO-50k test set (4,907 molecules, full evaluation):
Evaluation definition: A molecule is solved if
find_routesreturns at least one route whose leaf precursors are all in the 509-reagent building block set, within depth=5 and beam=100. Ground-truth reactants from USPTO-50k are not checked — any commercially accessible route counts.
Evaluation note: All numbers use the standard USPTO-50k train/test split (same corpus). Templates are extracted from the training set and evaluated on the test set. Numbers reflect performance within the USPTO-50k domain; out-of-distribution generalization is separately evaluated via ChEMBL approved drugs (81.8%, 409/500).
| Config | Solved | Rate | BBs | Templates | depth | beam | ms/mol |
|---|---|---|---|---|---|---|---|
| v0.1.0 initial | 366/4907 | 7.5% | 463 | 31 | 3 | 50 | — |
| + auto templates (top-300) | 1363/4907 | 27.8% | 463 | 222 | 3 | 50 | — |
| + depth=5, top-500 templates | 2315/4907 | 47.2% | 463 | 314 | 5 | 50 | — |
| + beam=100 | 2688/4907 | 54.8%* | 463 | 314 | 5 | 100 | — |
| + Phase A (template freq. weighting) | 3540/4907 | 72.1%† | 463 | 314 | 5 | 100 | — |
| + 5,000 templates, 480 BBs | 3826/4907 | 78.0% | 480 | 5,000 | 5 | 100 | 2,775 |
| Phase A unlimited (beam=0) | 3832/4907 | 78.1% | 480 | 5,000 | 5 | 0 | — |
| Phase B (NN scorer, tract-onnx) | 3826/4907 | 78.0% | 480 | 5,000 | 5 | 100 | 3,394 |
| + diaryl sulfone rule, 509 BBs | 3831/4907 | 78.1% | 509 | 5,000 | 5 | 100 | ≈2,800 |
* 29/50 chunks, previous binary
† 50/50 chunks — 72.1% (3,540/4,907) confirmed
Under RENKIN's evaluation setting (see definition above), RENKIN reaches 78.1% on USPTO-50k. Published numbers for AiZynthFinder (45–53%), Retro* (44.3%), and ASKCOS (41%) use different stock databases, template counts, and evaluation years — this is not a matched-condition comparison.
Note: LocalRetro (53.4%) and GLG (58.0%) report single-step top-1 prediction accuracy — a different metric, not directly comparable.
Full benchmark details →
Benchmark scope note: USPTO-50k is used here as a standardized sanity benchmark, not as proof of broad real-world synthesis performance. The corpus covers a narrow slice of reaction space (primarily C–C and C–N bond formations common in pharmaceutical synthesis), and reaction types with sparse USPTO representation are systematically underserved. Out-of-distribution performance on ChEMBL approved drugs (81.8%, 409/500) suggests the rule set generalizes beyond the test corpus, but neither number should be interpreted as a guarantee of route quality on arbitrary targets.
PaRoutes compatibility
RENKIN is compatible with the PaRoutes multi-step benchmark. Download their stock compounds and target molecules, then pass them directly:
renkin-bench \
--input paroutes_n1_targets.smi \
--building-blocks paroutes_stock.smi \
--templates data/templates_extracted_5000.smi \
--depth 5 --beam-width 100
The JSON output includes avg_nodes_expanded, avg_confidence, avg_convergency, and avg_success_prob (Retro-prob style) alongside the standard solved/success_rate metrics.
Competitive Landscape
| Tool | Language | License | WASM | Zero-dep | Algorithm | Template source | Stock |
|---|---|---|---|---|---|---|---|
| ASKCOS | Python | CC BY-NC | No | No (Docker, 64 GB) | MCTS + A* | USPTO (ML) | ZINC |
| AiZynthFinder | Python | MIT | No | No (conda + model) | MCTS | USPTO (ML, ~50k) | eMolecules (~6M) |
| SYNTHIA | Closed | Proprietary | No | No | SMARTS + AND/OR | Manual curated | Sigma-Aldrich |
| IBM RXN | Closed | Cloud SaaS | No | No | Transformer | USPTO | — |
| Retro* | Python | MIT | No | No (unmaintained) | A* + AND/OR | USPTO (ML) | eMolecules |
| ★ RENKIN | Rust | MIT | Yes | Yes | A* + AND/OR | Hand-curated + rdchiral (5,000) | 509+ |
RENKIN's goal: match state-of-the-art accuracy using only curated rules and auto-extracted SMIRKS templates — no GPU, no training data, no black boxes. Under RENKIN's benchmark setting, it reaches 78.1% (3,831/4,907 — full run confirmed). Template frequency weighting (Phase A) combined with 5,000 auto-extracted templates and 509 building blocks delivers this result. RENKIN runs anywhere: browser, CLI, Python — single cargo build.
⚠️ The table above lists tools under different evaluation conditions. No matched-condition experiment against other tools has been performed.
MCP Server
renkin-mcp exposes retrosynthesis as an MCP tool so AI agents (Claude, etc.) can call it directly.
Setup — add to claude_desktop_config.json:
{
"mcpServers": {
"renkin": { "command": "/path/to/renkin-mcp" }
}
}
Tool: find_routes(smiles, depth?, max_routes?, avoid_elements?, require_elements?)
The server auto-detects data/building_blocks.smi and data/templates_extracted_5000.smi in the working directory. Falls back to the embedded 509-BB / 20-rule defaults if not found.
cargo build --release
# binary: target/release/renkin-mcp
Architecture
Workspace scope
┌──────────────────────────────────────────────────────────────────┐
│ renkin workspace (this repository) │
│ │
│ renkin (retrosynthesis) renkin-forward (planned) │
│ ────────────────────── ───────────────────────────── │
│ target → precursors reactants → products │
│ A* / AND-OR search template-based forward │
│ route scoring & constraints (validates retro routes) │
│ │ │ │
│ └──────────────────┬─────────────────┘ │
│ ▼ │
│ chematic (molecular representation, │
│ SMILES, substructure matching, reaction SMARTS) │
└──────────────────────────────────────────────────────────────────┘
Internal data flow (renkin crate)
Target SMILES
│
▼
┌─────────────────────────┐
│ chem_env.rs │ ← chematic wrapper
│ - SMILES parse │ canonical-SMILES FxHashSet BB lookup (O(1))
│ - 5,000 retro rules │ fragment sanitization + ring-leak filter
│ - Building block check │ apply_retro memoization cache
└────────────┬────────────┘
│ par_iter (rayon / sequential on WASM)
▼
┌─────────────────────────┐
│ search.rs │ ← A* / AND-OR Tree Search
│ - Priority queue │ SA Score heuristic + memoization
│ - Closed list │ beam search (SmallVec frontier)
│ - Arc<PathNode> paths │ O(1) path sharing per child
└────────────┬────────────┘
│
▼
┌─────────────────────────┐
│ score.rs │ ← Heuristic / Cost Function
│ - SA Score (chematic) │ h = Σ(1 + 0.5·(sa−1)/9)
│ - MW step cost │ g = Σ(1 + total_mw/2000)
└────────────┬────────────┘
│
▼
┌─────────────────────────┐ (optional)
│ scorer.rs │ ← Phase B: NN Template Scorer
│ - tract-onnx │ Pure Rust ONNX inference
│ - --scorer flag │ molecule-specific template ranking
└────────────┬────────────┘
│
▼
JSON ← CLI / Python / WASM
Project Structure
renkin/ ← Cargo workspace root (planned)
├── Cargo.toml
├── src/ ← renkin crate (retrosynthesis)
│ ├── lib.rs # public library
│ ├── main.rs # CLI binary (--templates, --scorer flags)
│ ├── bin/benchmark.rs # renkin-bench binary (--templates flag)
│ ├── chem_env.rs # 5,000 retro rules, BB check, template loader
│ ├── score.rs # SA Score heuristic + step cost
│ ├── search.rs # A* / AND-OR tree engine + beam pruning
│ ├── scorer.rs # Phase B: tract-onnx NN template scorer
│ ├── python.rs # PyO3 bindings (--features python)
│ └── wasm.rs # wasm-bindgen bindings (cfg = wasm32)
├── crates/ ← sibling crates (in development)
│ └── renkin-forward/ # forward reaction prediction (reactants → products)
├── data/
│ ├── building_blocks.smi # 509 curated commercial starting materials
│ ├── templates_extracted_5000.smi # 5,000 auto-extracted SMIRKS templates
│ ├── benchmark_targets.smi # internal benchmark set
│ └── bench_chunks/ # USPTO-50k per-chunk results
├── scripts/
│ ├── extract_templates.py # rdchiral template extraction pipeline
│ └── run_benchmark_chunks.sh # resumable chunked benchmark runner
├── docs/ # MkDocs source → kent-tokyo.github.io/renkin/
└── mkdocs.yml
Roadmap
- Route cost scoring —
route_costfield +--bb-prices path.csvflag (SA Score proxy or real prices) - Cargo workspace restructure —
crates/renkin-forward/sibling crate -
renkin-forward: template-based forward reaction prediction (reactants → products) - Optional forward validation of retrosynthetic routes via
renkin-forward
Completed milestones
- SMIRKS retro-reaction rules + fragment sanitization
- A* / AND-OR tree search, closed list, degenerate-route filter
- SA Score heuristic + beam search
- Parallel rule application (rayon; sequential fallback on WASM)
- Python bindings (PyO3 + maturin) ·
pip install renkin - WASM build ·
npm install renkin - Benchmark CLI (
renkin-bench) + USPTO-50k evaluation - WASM browser playground + i18n (EN/JA/ZH)
- Graph-based biaryl cleavage · O(1) canonical-SMILES BB index
- Published to crates.io / PyPI / npm · GitHub Actions CI/CD
- MkDocs documentation site · GitHub Pages playground
- Auto template extraction (rdchiral): 27.8% → 78.1% USPTO-50k
- Tetrahedral stereo @/@@ + E/Z double-bond stereo
- Template frequency weighting (Phase A): 72.1% USPTO-50k
- FxHashMap · SmallVec beam frontier · SA Score memoization · Arc path sharing
- 5,000 extracted templates + 509 BBs: 78.1% USPTO-50k (3,831/4,907 ✅)
- NN template scorer via
--scorerflag (tract-onnx, Pure Rust ONNX) -
--format tree|mermaidroute visualization - Constraint-based search:
--avoid-elements,--require-elements -
--verbosesearch statistics to stderr - MCP server (
renkin-mcp) — AI agents call retrosynthesis directly -
#![forbid(unsafe_code)]— compiler-enforced Pure Safe Rust
Citation
If you use RENKIN in academic work, please cite:
@software{renkin2026,
author = {kent-tokyo},
title = {{RENKIN}: Retrosynthetic Exploration Network for Knowledge-Informed Navigation},
year = {2026},
url = {https://github.com/kent-tokyo/renkin},
version = {0.15.0},
license = {MIT}
}
License
MIT
GitHub Topics: retrosynthesis cheminformatics wasm rust drug-discovery casp synthesis-planning computational-chemistry
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file renkin-0.15.0.tar.gz.
File metadata
- Download URL: renkin-0.15.0.tar.gz
- Upload date:
- Size: 154.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
557d914e3805e3897a184ba0928c74e2e7f32a39f63de498c81ac25b1eb3e841
|
|
| MD5 |
19e9121f8857b270930f0f27a2ba79dd
|
|
| BLAKE2b-256 |
b2fc756cb02cfaed1e9227eeb45b89eb17875850a9199f77233e994cd81b4011
|
File details
Details for the file renkin-0.15.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 817.8 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b93f4b82f77853de5db97a5d47a06a4bbaeee06bf5d2cedf0aaf4970f53d2231
|
|
| MD5 |
043e3a82c6d69d1df96d93bb6581183c
|
|
| BLAKE2b-256 |
021fbb84255f16d3c0396e51e13c983a48dc99fc4efc95248acb38d508fc0440
|
File details
Details for the file renkin-0.15.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 777.8 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73b9468ca3beb89beebab51bcaa2f27b153c764c1787b1e6e6e7afcc0c281ed9
|
|
| MD5 |
48156223c64fe2206922ac28e36ce692
|
|
| BLAKE2b-256 |
f13f25a3a837cddfefb37618f2d5023476bb3f1b705081cfb2babb23890bdb4e
|
File details
Details for the file renkin-0.15.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 815.0 kB
- Tags: CPython 3.15t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
732f363c930ce9cf3d1ed44b415756fbb18715316f2951cf4cf4a2f64b26442a
|
|
| MD5 |
90bf87356f87ad652c4247835f53f95d
|
|
| BLAKE2b-256 |
7540939c64a087b15c5432a78a6ff4dfbc3124d224b163707ea2624b0af2a58d
|
File details
Details for the file renkin-0.15.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 814.9 kB
- Tags: CPython 3.15, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06b2137bc6d1a70da2981f68121e434c29d46fc533ad0eed0a93606006115036
|
|
| MD5 |
a1e06245aca4e46e49d82b0140d06938
|
|
| BLAKE2b-256 |
14f5138f6fb13f840f60889846aed3ca265bba995bcb8165aa8fdf997c1ed92e
|
File details
Details for the file renkin-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 814.5 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe78bb83c9ac8dcf383fe779435403479a0504ec2b77b67d31fddfe06f6ac98a
|
|
| MD5 |
3faf73c877d9e721ab61a8cc3c732412
|
|
| BLAKE2b-256 |
916e9b4e57c52e9a4a8e51f9b44f1c7f9bd6bdf6de9376bf7f656fe5f4a4ddb1
|
File details
Details for the file renkin-0.15.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 773.3 kB
- Tags: CPython 3.14t, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61b1d057cfa811400cfb619876ff9a619ebc602bdedf72f9a37509e4f96d07a4
|
|
| MD5 |
0607354249e48baadf4ea3d226f7c285
|
|
| BLAKE2b-256 |
fc501df6c1d5d0da86367685a565236382fe61c842e153da7ae70087ba41e583
|
File details
Details for the file renkin-0.15.0-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: renkin-0.15.0-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 579.3 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ba840bec07192f42b31fb39eb8e4649d50bd2994bb2ea11aa25df37db2e7e49
|
|
| MD5 |
59373c8f5bc1ecdd4377bbbad6dbcf15
|
|
| BLAKE2b-256 |
56f439c1a30a2b745f96df811dabebf0e133793663df4c7e46be82e774e14e69
|
File details
Details for the file renkin-0.15.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 814.9 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2eb6a060944ee25c28a2dd6808596c258b1cd873e809b74a7cd97b2ba9c01f25
|
|
| MD5 |
65e0cb3ea7488b2914a53fa7e32b9f9b
|
|
| BLAKE2b-256 |
333b76569bb9e4e94be81fc6a25d72c6703e459fddc727dac0867fbc86fe0873
|
File details
Details for the file renkin-0.15.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 773.7 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6961e51a19e673677b678e391dd3eaf6aba09d47c1d7ea4372f86465b55a156a
|
|
| MD5 |
a0f357f2e33a2773f257ac58be10514c
|
|
| BLAKE2b-256 |
4f9396358bc5c43b69fcdf9c96e1d611d945645ba8b89eba73a5c8eb3d23d544
|
File details
Details for the file renkin-0.15.0-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: renkin-0.15.0-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 703.6 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
791a7faacfd01daab7f2da9116b435aa8ed032cfb483fe0042f2684cf0c8877e
|
|
| MD5 |
7646b8c5d88dbb5b478ab55d840f840f
|
|
| BLAKE2b-256 |
5448752036d727fc17c7ca10226e3b80b1b6d330570b125d1ed2c80c48faf921
|
File details
Details for the file renkin-0.15.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: renkin-0.15.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 578.0 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1992ab5fc246bc20c45bb12063576f65e43b3f7d78c33b6499f78ffca83eee4f
|
|
| MD5 |
1f3214d3cd59d06e235b45b3d0711210
|
|
| BLAKE2b-256 |
392f993c3afedce0e5eaab84aeaa11815761bfe6065898eb5477e8ba72439562
|
File details
Details for the file renkin-0.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 812.8 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c7b07d63f2719b60e4ef6508713e498ce5ebb4d27abddc25fc1b8c02f8708c0
|
|
| MD5 |
f743c92f8774bfd3e0d39892561c266a
|
|
| BLAKE2b-256 |
ae8ed2546b035daa68461922aa88ff0617186b82d3d56413cd639d0a42c2d10c
|
File details
Details for the file renkin-0.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 773.3 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b25c31c3368abf69e33e7b7b1876d181d75c389d30a83ca49758b42ae2cf562
|
|
| MD5 |
d153baa1469c1ba41cbaa8275566db04
|
|
| BLAKE2b-256 |
397e5b2b7128f822e9ad1e78c4ab9c58b240bfd5315ef2bd618fa2f18e0f0f43
|
File details
Details for the file renkin-0.15.0-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: renkin-0.15.0-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 702.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99ad9e45dd5d858ba4b83c175ae35ddd1c739115808c3c2c930d32948bddd1e3
|
|
| MD5 |
dc66924008dfa668c6d0cd5f66ff3da0
|
|
| BLAKE2b-256 |
4138a6482c2ed492ed143046044192c8326f6bedbb2615a9d041df6d0700305d
|
File details
Details for the file renkin-0.15.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: renkin-0.15.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 578.4 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d294206b44f9869fd15904b8cc3376a896ee16d3d729e5c846e513c24801973
|
|
| MD5 |
022b22ec0efe90453b1ba23c24a61870
|
|
| BLAKE2b-256 |
95325e446b16faf6ffd6be98b3033c14a12da40a3d89b719c49280f3522cc0d6
|
File details
Details for the file renkin-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 813.4 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2c4840945a42920c687ac41fb6a07be97e5123529e389b8fa30d8f83b9df29a
|
|
| MD5 |
be1deca891f7e54e121f420a40531640
|
|
| BLAKE2b-256 |
8b6c2ee2515c30a9daa1ce48dab482aac1141d6663af2813df869fc4c59432f7
|
File details
Details for the file renkin-0.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 773.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89594a0d552b434c35525d1f26405ec6a4d2d31b8d87d846226f57111f7dbf27
|
|
| MD5 |
dc4aad503fd0b64b2b791316a8bdb290
|
|
| BLAKE2b-256 |
a8c950ef77d6f188a595d70b6b2c18d7b708a67e7c1df347feb84cc45a7d7662
|
File details
Details for the file renkin-0.15.0-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: renkin-0.15.0-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 702.7 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c0be33eec70787116cd256a29cfcb22545074f0fd875fa45c4546e3c3a12132
|
|
| MD5 |
f0d997251d593fd48f1cb9a0b6ed3649
|
|
| BLAKE2b-256 |
e594f332a240e4359a04d21d5fb117e1c6e0a41ddbfba54df38b92e81d141533
|
File details
Details for the file renkin-0.15.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: renkin-0.15.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 581.4 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48006c3059c159636a8726724d15b324273bc817b84bb3129bb90c20f9e7769c
|
|
| MD5 |
7b2498a0d9f077057d78d46b277b3303
|
|
| BLAKE2b-256 |
0512bd85c7dd1fc8061f314490d123108ecbcb4d3b1ae9dbcc7ea823a2e86034
|
File details
Details for the file renkin-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 816.6 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1d3fe6a4965f5c4510bc475ab9962d583a5428f27797f35ad5035547addf0d4
|
|
| MD5 |
300431da19fa8d70732665833719b680
|
|
| BLAKE2b-256 |
79d7f8545ea9e7c022a0340139eea162068167d006bdf177157777c2b6a9a8bb
|
File details
Details for the file renkin-0.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 776.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e77a31d1108963335b509694c26ccb28b1d5f64de249eeb7a72d9e7c71ce2e88
|
|
| MD5 |
19eeba07dd428c030b364727daae3a63
|
|
| BLAKE2b-256 |
3a537f5ef4172bbc5306847cee1bae37edb2b59e2f88adca33801803b822ab50
|
File details
Details for the file renkin-0.15.0-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: renkin-0.15.0-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 705.6 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aef492db442b52120850fd2deb1baca88b047bd4be7c2fa1011ec90a41aba4ee
|
|
| MD5 |
08ab9856273358b35e1bda7089a83384
|
|
| BLAKE2b-256 |
724c328bc103457c91192332a8f916773cbd810cc52e283c8b4254e9b0b57235
|
File details
Details for the file renkin-0.15.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: renkin-0.15.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 581.4 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
96c8ec313bede006a2f69a5a412fea0b315658b60a14cc5d9549dfaed9cf2f0d
|
|
| MD5 |
73f7777ebc86b50984d0d591a6848ab0
|
|
| BLAKE2b-256 |
b1530af202c778c7e22b39c551fcee7da9eb47524834366968df89096f4ec513
|
File details
Details for the file renkin-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 816.7 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77f576e876efe59a0e657fa938012fbd120246bb401941afcce772ffaed64bd0
|
|
| MD5 |
bcd8771491b649675c40332c2be6a02a
|
|
| BLAKE2b-256 |
5351c13d55cfe487efb3f56b62c1225ae1e6a052181ab851dbd5a4e17d4cd7c8
|
File details
Details for the file renkin-0.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 776.6 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
278f6323d2567ee84b0445283d18214f40a8cb8c6916b0e5fa4a9213ab05b34a
|
|
| MD5 |
55815d4cd1980b7d5b0aad0ab69a0975
|
|
| BLAKE2b-256 |
3f61800cb6722e114656d01dce524b3d49f94b8e10bf98c8fb6b50bf60337b9f
|
File details
Details for the file renkin-0.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: renkin-0.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 817.2 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18aff1efd579ee7ad9eef15978eb7cdef07772c1d2b3a46e3ccb9b5b8863909e
|
|
| MD5 |
c4fa3db9df6034fd71abbb72cf7afe6e
|
|
| BLAKE2b-256 |
a7e2bc82d23ff298029b62d12d39391b19b929096da1e5123bfa9edef85e82fa
|
File details
Details for the file renkin-0.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 776.6 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37f8294b64c99a2f8a01cf52e8e28bc44be32251141cc9cee0e635ee7dc32f06
|
|
| MD5 |
41bd504cca2a521595616817cd403fd5
|
|
| BLAKE2b-256 |
a2ef147978c311dbb89deca84713b4b05161756fbb9f1dfbe57717d92356ad2e
|
File details
Details for the file renkin-0.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: renkin-0.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 776.8 kB
- Tags: CPython 3.8, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0940eb820abdb80ec42243a597af11c64c701fe4612a52e4641b69bd4b1eb3e5
|
|
| MD5 |
f7c55c912eff34810c0e8fb135f8994c
|
|
| BLAKE2b-256 |
dd9ddd6e90a938f976f32dca3c33c7fd936fe8a821f2c230c95d2b3c35a274c8
|