Skip to main content

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.

CI Crates.io PyPI npm License: MIT WASM Pure Rust unsafe forbidden Open In Colab

日本語版 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-elements prunes 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-elements is 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 with pluggable heuristics (MoleculeValueEstimator, ReactionPrior)
Up to 50k reaction templates Auto-extracted from USPTO-50k/MIT via rdchiral; frequency-weighted priority; --templates for custom sets
Route scoring confidence, step_confidence, success_probability (Retro-prob style), convergency, atom_economy per step
Route cost scoring route_cost = Σ(BB cost) + steps×0.5; actual prices via --bb-prices CSV
Forward validation renkin-forward validate verifies each step by applying templates forward; accepts --route-json or stdin
PaRoutes benchmark renkin-bench --input-format paroutes for multi-step ground-truth evaluation with depth_delta and route_diversity
Atom balance check renkin-bench flags steps where target_MW > Σ precursor_MW (CompleteRXN reference)
Procedure hints 19 hand-crafted rules carry procedure_hint — placeholder for QFANG-style procedure generation
MCP server renkin-mcp exposes find_routes, validate_route, estimate_diversity to Claude Desktop
Beam search --beam-width N for memory-bounded exploration; SmallVec<[FEntry; 6]> stack-allocated frontier
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_routes returns 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_cost field + --bb-prices path.csv flag (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 --scorer flag (tract-onnx, Pure Rust ONNX)
  • --format tree|mermaid route visualization
  • Constraint-based search: --avoid-elements, --require-elements
  • --verbose search 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/releases/tag/v0.15.0},
  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

renkin-0.15.1.tar.gz (154.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

renkin-0.15.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (818.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

renkin-0.15.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (777.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.3 kB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.2 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (814.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (772.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp314-cp314-win_amd64.whl (577.2 kB view details)

Uploaded CPython 3.14Windows x86-64

renkin-0.15.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp314-cp314-macosx_11_0_arm64.whl (703.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

renkin-0.15.1-cp313-cp313-win_amd64.whl (576.8 kB view details)

Uploaded CPython 3.13Windows x86-64

renkin-0.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp313-cp313-macosx_11_0_arm64.whl (701.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

renkin-0.15.1-cp312-cp312-win_amd64.whl (577.0 kB view details)

Uploaded CPython 3.12Windows x86-64

renkin-0.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp312-cp312-macosx_11_0_arm64.whl (702.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

renkin-0.15.1-cp311-cp311-win_amd64.whl (580.1 kB view details)

Uploaded CPython 3.11Windows x86-64

renkin-0.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (816.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (775.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp311-cp311-macosx_11_0_arm64.whl (704.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

renkin-0.15.1-cp310-cp310-win_amd64.whl (580.1 kB view details)

Uploaded CPython 3.10Windows x86-64

renkin-0.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (816.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (817.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

renkin-0.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

renkin-0.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

Details for the file renkin-0.15.1.tar.gz.

File metadata

  • Download URL: renkin-0.15.1.tar.gz
  • Upload date:
  • Size: 154.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for renkin-0.15.1.tar.gz
Algorithm Hash digest
SHA256 60f5bb9973327a9a41bba60db3129f65c96d56f9ffc075d8646d8efe7fdace38
MD5 e816642bb5eb4bc27071592e6bcf4868
BLAKE2b-256 8e704ed6d5c5158b62da1733930e375482690d5c586fb9452b444535a0bf46dd

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9302debfe2cf0876e5dc1c3eca0c8001f9baaf4609e5514c639bcca75eb2a3c0
MD5 7a349363bdb48cca13486deb480176a2
BLAKE2b-256 849d937de5cea0532a6a66a899f6d7974d1c979b92c4fb8e8714e8d10b97e581

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4f5f504b3c3de27ca647e833de4377db47139c03e038fc0c577740bd013c8615
MD5 f6c19fd72e2377a73b4ba27e5380ce10
BLAKE2b-256 aa80bf5c9ffbde7a7776ace8daf1ca520fcb71b167596fe4eefd5cfc5908de2b

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c247cac7adcd60c3c175e7dcb6349bf8964da4d69b80947a09906ed19032e19a
MD5 2e7e6d100f0631ec59b74e1dce8f2de8
BLAKE2b-256 4d06fb49cd5dabad800069c4796361683ba94ce01f5ad1d1f60e787a8e30b5d5

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8f0732cb3060feaea222a815b47840f74a597a0c8e1ae148323f8b4cb673101b
MD5 a7a4c8ab89a64c3d2bba3e5ceec53c9a
BLAKE2b-256 5b5e0f3c3792b6ae8d11ae22d8dc50375fd609816db737655a38dcc27411cfc2

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43d549eb691a20efd2d0b8af4bf42e71b1455762b72b81e69f1216dc64dc7e8c
MD5 998b5dba155c7ad09c78c68620d0a49f
BLAKE2b-256 603ec67988cb381eb01cb19f97f4aed4507aec13066964a6d13c5f4945651097

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3af304b1895c3e19142fd4656ca10faef5616cd5d11aedec753e5e44dfef90e9
MD5 b6467a67aa434d2700ec1f724acd9114
BLAKE2b-256 7066c339cec6a3947436e20cea023006598363a0bf54337ee25fb92ec926905a

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: renkin-0.15.1-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 577.2 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

Hashes for renkin-0.15.1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d6020921080a2880d2fb5e38adcf86317ac65f7e45c88b91fe4376f86bd9e794
MD5 2d6306001897211b5d49d1ef0156802d
BLAKE2b-256 76e5a0f860255d5848bbc5e90fb216c2e3184199414b121353dbdb781be6dd3a

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3030424c50e5c61dc9883e30bea217aa2dd17d2d5cbf51a9cf853dadd997c484
MD5 ac6abafbd804af57a1226ffcf7fd8a5d
BLAKE2b-256 a586d8f4a32027ec026a2a5190345eab1450e838738b642cb57bf793672a4dab

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f896cb8722393df510fe0e760dfa08240d84510077ddfb6d7e410affb17c2ac9
MD5 526a43c2cd4c0020816209f89c9223f8
BLAKE2b-256 291a2936bef5a0fbdf47e520179a06049d9f67402561cc953d6aced103f4d300

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a303f075eec52f6f255f92b5c68ebe290ab7f5433ce4204df4c5d365fc78dc7e
MD5 6ee15adfef16457286772a68f5bfd868
BLAKE2b-256 0b76890ceac1c686eb6366a12b77cfe9d73176a83ae68bffadbeca840468967e

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: renkin-0.15.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 576.8 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

Hashes for renkin-0.15.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f14ba7b0388fa14b19270af7d7315d3c0e6e9eac1d306fed8f851ebe0986b9a3
MD5 67121c28a2d93eaae23d5cbce530536c
BLAKE2b-256 31c16476f817474b89af356b7767ed83b17124fef9e213a1661f00f09e5a2e7a

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9080362ee7c69e5079705a2f5bc7703c42e0040c10620134ef455fa78695f92a
MD5 662239509e85df063f5fb556360cd176
BLAKE2b-256 b9981a62abeb38e00cc15370fa38bb8155aac32dd3558607faebdf0d0c2b43e2

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 58ce00e748dc053281df59343dcf8ef21f4aaa298ea6424e205223df802ac54c
MD5 da616ff703be834eba7dc3f632d5e55b
BLAKE2b-256 9a5eb1eea96f4c272d0ac30c9c7043e42b2c7ce13db0f0987f68533ac0ba0196

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93d1521eb0a6739f9e592576421ae9822436ed1dafb62a711d6d11d41e03972e
MD5 b26ebde30a7c2f2d8375532ef6538234
BLAKE2b-256 fb964c8198e026f6b5d78b95ad4dfe97cf45c97e5fb3439654c9c0301e3385fa

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: renkin-0.15.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 577.0 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

Hashes for renkin-0.15.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2cb880a2bcb613e2a220cd6d8d4af7bed64010d47cd57f4d78b911863c516175
MD5 fcebf34e101496af66d4ec605fcf15c0
BLAKE2b-256 1887d91d732654abe0d4c613e1d457431ec9cf53fe231e59f67f73c71ccf22df

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6fedace2c60230d14b7e7ad6a5ceebf520679012a90c3e5ede16ce72ef6579a1
MD5 57861066fd508e6ca445269bfd508d31
BLAKE2b-256 28c6dc293599ecaf26334df8d6fa6cf185993afeffa4dad7fdb57598b965ff05

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 87dad2252ffd419a7c9c8c7ebc582476ffb0f2ece25838121d2175ae93e10ee5
MD5 2ba732514280f9c636762a09529d39f5
BLAKE2b-256 3839b41cee582d9b7adf8f9fc30926059d149478fa546bf5f080183c8762cfc4

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 582b1af43b5e25672c7bf56fa4edacb0471a9161e71f9e6ebcb19545bd81fc1b
MD5 0e7cc3550ca1757d3bbaa3e9c513e2e3
BLAKE2b-256 32e2e86c600580caa4aabcfc8da40c04fef31877bd75b8a94a56c9279ce4a748

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: renkin-0.15.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 580.1 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

Hashes for renkin-0.15.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 766899ab57a73672f904a01badce4e556671e7b3929546afbc1937e033c33b8f
MD5 e47b6356b4371e4227ad26d2d46cd51a
BLAKE2b-256 7b470bbf6770bfcc5ac8bfc75fd34d8020d5d968771aee2fb96aa12d4240d272

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4eac1339a248c0c143cc044d8e036098586f02e0e24c5f3e94cccd8adf7827d5
MD5 10f63a3e8ee50b3981fb1f7465f5e466
BLAKE2b-256 02fcb124cf7ae56f0216679aece0a5833fb66c48a391cc10709cb489539df587

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b9d03fec46f6851ac1dfdfd4ddcba514fde0abd94618539559958224f2ede612
MD5 563787bcdf1c89b4f3453882682c02c2
BLAKE2b-256 3fe777461d23e86e2d6b786e0e6ab102258a77185b521d2de93009755fcdba19

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84a8f95c78b112e8d2fb928d6e376fc1c38f9bf03053f07a642c5ffa35bef60e
MD5 16795b317bd57a0bd5883aee451eebe1
BLAKE2b-256 c6c91170245a8e670b48742143f1c94f3322020319d757529cc890fba47dacd4

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: renkin-0.15.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 580.1 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

Hashes for renkin-0.15.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e0936f79844ee3a74f823fa9ef9329078fdd8730b4b0f214c3c02085fbcd55b2
MD5 1432762b1c9b756e4245332a5f2b7378
BLAKE2b-256 b57e6e14f56a6855fddf1b48b0c5c200b8adc8c8d240ac1011b0a73f99bd21a7

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 15c332e44baec881057fc9bff0a3cb66a27ce0db7eabbf5c3189528602277ed0
MD5 b0f4602bcbe3a047a1891382ee107d62
BLAKE2b-256 c257d57e52b1af563d891b2c6fcd66aa9fa5fd3476185bf7a07883de4ca8a5e1

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2982db9edb0f8ac2eba540b91e444ef5eacf9ee8faba3c88982a912400d2f1fb
MD5 8bed79dab3d3c121602d2975f3053480
BLAKE2b-256 eedadafcd79d9baa614eaea94e2d78f05e8755e63360927b70df2303474e2724

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 132533ae2d1a7c3a0ec8a65f2f960b3763afa233b158f9b8963e4fe9986265d9
MD5 bfa2876128b3674e6cf9e62e947724ec
BLAKE2b-256 aaf8399572d9e41c4385337abfad12a67e9b3c8756cf66e53119f47ce6e992ad

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9914972aad91e6353db05fabf8df3866ffc78eeb84a29ff101539666ffdd5c90
MD5 efbcc0a48bfae5e88d392b04e369c265
BLAKE2b-256 e48fc2a9a95c61d0e1210a05313f55a253327de355580b7fdc66b5ef2097d445

See more details on using hashes here.

File details

Details for the file renkin-0.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for renkin-0.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7699dbdbd61c6df64037108e00d957098e661423b8c07acd5d08170d85fd0ed6
MD5 ed80302b28010fb5dbf4a52453df5f3f
BLAKE2b-256 41892a158d3e4d6feb681301b9854bb88910c1ea110b03b52881a05b26c1f99c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page