Skip to main content

Ultra-fast retrosynthesis engine for computer-aided synthesis planning (CASP) — pure Rust, Python bindings via PyO3

Project description

RENKIN — Retrosynthesis Engine 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

Pipeline Examples

# Route cost scoring with commercial prices
renkin -t "Cc1ccc(-c2ccccc2)cc1" --bb-prices data/prices.csv --format json

# Forward validation — pipe find_routes output directly
renkin -t "CC(=O)Oc1ccccc1C(=O)O" --format json | renkin-forward validate

# Faster template retrieval with bond-center index (~24% speedup)
renkin -t "c1ccc(NC(=O)c2ccccc2)cc1" --templates data/templates_extracted_5000.smi --bond-index

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 (5k default; 50k via --templates) 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))
│  - 20 built-in + up to 50k via --templates  │     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              # retro rules + BB lookup + 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 — crates/renkin-forward/ sibling crate
  • renkin-forward predict — template-based forward prediction (reactants → products)
  • renkin-forward validate — forward-validate retrosynthetic routes; stdin-pipe friendly
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}: Retrosynthesis Engine for Knowledge-Informed Navigation},
  year      = {2026},
  url       = {https://github.com/kent-tokyo/renkin/releases/tag/v0.15.2},
  version   = {0.15.2},
  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.3.tar.gz (155.0 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.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (818.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

renkin-0.15.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (778.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

renkin-0.15.3-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.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.0 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (814.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

renkin-0.15.3-cp314-cp314-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.14Windows x86-64

renkin-0.15.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (774.0 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

renkin-0.15.3-cp314-cp314-macosx_11_0_arm64.whl (703.3 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

renkin-0.15.3-cp313-cp313-win_amd64.whl (578.1 kB view details)

Uploaded CPython 3.13Windows x86-64

renkin-0.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

renkin-0.15.3-cp313-cp313-macosx_11_0_arm64.whl (701.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

renkin-0.15.3-cp312-cp312-win_amd64.whl (578.5 kB view details)

Uploaded CPython 3.12Windows x86-64

renkin-0.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (774.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

renkin-0.15.3-cp312-cp312-macosx_11_0_arm64.whl (702.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

renkin-0.15.3-cp311-cp311-win_amd64.whl (581.5 kB view details)

Uploaded CPython 3.11Windows x86-64

renkin-0.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (816.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

renkin-0.15.3-cp310-cp310-win_amd64.whl (581.4 kB view details)

Uploaded CPython 3.10Windows x86-64

renkin-0.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (816.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

renkin-0.15.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (817.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

renkin-0.15.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (777.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

renkin-0.15.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (777.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: renkin-0.15.3.tar.gz
  • Upload date:
  • Size: 155.0 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.3.tar.gz
Algorithm Hash digest
SHA256 682e1bed6ed7f5919381091a5074c451e3ce001cf56dc2fa9a3731d4b2aaccc3
MD5 b488e000bfcf1d53c45fc29226af97c1
BLAKE2b-256 7334efe2908af5b046ff13dd02ef09f85c8c0038b9e614ec1d862c442310c78d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 69c5227d32e8e1568ccaeedecf0fcd878b20e392423ee3123a44ccea4197a9f8
MD5 122914655a5247e64bf3d579f6a149a2
BLAKE2b-256 2dbbc9c059b110c186fd159c7a5006675f8284cffef57ef28002a2919865ccad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6aa3afb98b202cdef529e2e505c6c62ef9104032c30732134bf1b12bccaad00d
MD5 c95e6d0c102e77ab5d157e06aafdb29b
BLAKE2b-256 1fc644d536e0141f3162bf67c1ea2dad416ebb34d07378cea1a21995382ada47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ef52e861e5dc17024c277803220caf9967b7c135688143ec6d88a0632b6daf9
MD5 e224231d594eccfd22fc04a2b0d42fc3
BLAKE2b-256 cf7d4d76b145942991e5d779d2372e4dcf6382cb1254806526cf093ec51938d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fac7e638575ae7893a917e037db9a15ca1d929d85096ecd34b67f75be96fa50a
MD5 bfbe71799aa1f9c01acfb39606bd8053
BLAKE2b-256 d859fd8fc6f68e023642dd32b534a0e4ddb5d9885b121512867b4edd4765f589

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 803adf94a52f22570e73e5848f674fe44361008d48c7d06643c942b8cae00832
MD5 4b45fdd7b77a48f9f7d3d548a9958c2d
BLAKE2b-256 a304bd2d0699cd2b5714e57f7cb7300837ba7a51df9bc6702bb11b42ca5232c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8bdf705c97ffed9448000e6d9040bd8bded2ba8fe42d8f13fad56a5836b61168
MD5 59daafc32bed26b000cb52b2931325a7
BLAKE2b-256 47522fdaafb3183f80911c18b025435d6a7bcd41a1de4c9efabf8efa29c2b6bc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.3-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 579.4 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.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 6383a8ef65808d3d17f39885cc2e95f1a20b697f10752afbae3db02746474c9d
MD5 eb9281b984f4c41d6b19bc4a8d798e17
BLAKE2b-256 00ceddd2884517a88ce31d09ed4bdda2bc97a0430a20b34494cfc9955a1a9530

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e327c5317ca2e4232a0263d7ac2324ef3168a75035ef0ebc9010e4b13af99ebd
MD5 efb740447a17e52fb1a95210e0ec6693
BLAKE2b-256 a0afadc9f70a8cee777fb53d256e56f1238766f0883ab47800e2f193858633b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 45a112226034aa51855316a4c60cb9f7e4abd60bda408173d493b4ad50ba955e
MD5 450b916554a60ba5281bf63f67656d9c
BLAKE2b-256 b5336a8598784035e2badbd15e8b49120c209c943635a5946cc0ebbb47c70760

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7f5435912dd9668c44b6d90509d368f00579077f473072715661c94da14cd6a
MD5 17dfc5c0239e25cc56de47947ccaba49
BLAKE2b-256 1aca56cfe0d1d4a710726cf646419f68e1fbdc53eb09ef89da7f17bec193d1e3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.3-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 578.1 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.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4e9325c79b8e2b7c8e171118eb4a9c71df9c58bafbb5c327101a7180b718e2db
MD5 45555777bb1239a9261b478416365b3b
BLAKE2b-256 ecc06d1ea75041c11e8b149d111156dce6b970b8ae52826b91cbc121e5a51ad8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0dec61753e91f535007af3a6065dc5934aebc2ce2583df900a37609480f35a78
MD5 d1dfb65505b61b15735869c8987b0268
BLAKE2b-256 d73bdcd46eccc0d3bd6d33b0030c43096f9f71558675b834a5b2af02c52a84ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81ce91838594107f5c68a8544608a70816f3d0455ff138fabbb138e41b8d75c7
MD5 2eed39df032f5d50751acee2c4b8f108
BLAKE2b-256 3e16858a133d79456e0e3b30e25edc0ce696785f9a1843db13613d9a43a48d73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 116f732f9e3d1529653b9d6dd9ceec5227fdcb0b8254a0ae82d778482e93eee8
MD5 bc6a44eee12df849d1d126ac5cad9f70
BLAKE2b-256 052cf0e1f5bcfa598eb075593074198565e5ea6eae7e632a39a02b601d8bc7a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.3-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 578.5 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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d3ccb3f8acb39a1e1af74ba3ee62878a1048642508be37e6756a9d0616c3a56d
MD5 d8c27a42a5e3d41b4e77263100329541
BLAKE2b-256 cc1b85633f0ded7d78b0ea3d2fa4004f7a5d325adcdb3cb777ab2c34d3425bcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b4c167e692f3d75cd473ed11da8b4caef41624284238ce68a3da8d3aec15d0c9
MD5 434e1bb30295de772d3cba6d51c048eb
BLAKE2b-256 8fee9e364233bc29963548bc4a70af1bdd879df68f9c43be09a553f20c7901a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b794ee4170d7bb7e6a06ca8fb865154a81806ff26d5fd0a36f8348b0a2d357d1
MD5 2daf70c77d54339aeafa47cda5fd224c
BLAKE2b-256 fb3b8fb3420f505b83ed26b112d5a4d2c134087c0166eb326de42dac7aa73956

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 873a63cd4c6ca9390d13c2f5f659843c22795cef1f30880c75d1412ccfe07958
MD5 001bbbba52c83857f6ffacddc2c05846
BLAKE2b-256 b5f996c6b24aff14187b0b6b9a2df162d398f89628d127ffa2c96efff7ff1b4d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 581.5 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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 016fcc6af3f9cca181c8e7166b7c2a51be718fbe9eab509b8f9194818674b721
MD5 8e46179b4f96aca2a21905113bb980ae
BLAKE2b-256 6c76dcb679fbc23a0790dcf6e595f29428d9e1a066e9c51895548b43535a20fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2d0195588485c81138f97c72099ce170817c42c7ece92ef6f461a16a7a55253c
MD5 ceb75925f21ef626a2eb052ea7cc8585
BLAKE2b-256 72feac030e6c2febbf1ba4fbd6424955cc9008bf2fdc06131e9f408176603a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 85b65b4297fac890e873f007fc27acd0a66ab740f92da12b40da03d3d6761fe9
MD5 dc01443300895308650035babdf37f95
BLAKE2b-256 ead274172e48eb9911213c3d18d22afc3c99208fd7cd575304dbf31a3d75a765

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb7426360d0c03ce928374f311a248921d5df32949b8a3ae69c7e710d06ecff4
MD5 2abb5186bfd430e7b455d50f6a133b7c
BLAKE2b-256 52030b408a00c0eefb79ac4cdd64d0aceeabab36f3d942742b17af38da2da219

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.3-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

Hashes for renkin-0.15.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7c1abe6c18f1326e24e24580fbaf2dfa00341532e8a20a20dbb55a4e2050c83b
MD5 44a142078c139d4a4d46cb20e0f187c0
BLAKE2b-256 cdcf857ab08ebab4e1366df7555d3b8f5688010095e048d1c8961c3a2f72ce9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e1b88919767de1cfde809e27133f984790f54dd3fe811180f7367bfc6d2dc2e
MD5 466e1031298364dd2e2f9c03bcc22adc
BLAKE2b-256 ce2537ad009337986bbe8a71e5bcad7b4b056fa73014259be2785dda3530f474

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2897c033e2ef0416960b1c89180b5c3c0d2ad742800358bb84483399e76d5259
MD5 fe027485dfd22eb80ff761923bec54fc
BLAKE2b-256 bf7f28c5d105840891a847a29ec407be1525b9977334e140607596dbea185621

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90a1dbd9688bf2da4f9edb5165cf5f41729020acab2ac7fb4fda91772fd7cf0e
MD5 4aaff977511fab644ea92b19016ae2cd
BLAKE2b-256 20c57c255f84dec429c3700f403da884b4ea4ce64e4fb2cae139202113560c8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 859e0ec0fbbbdd36300ba4997f1f69a0d220dcb2daae0a5951e70e562d56dc36
MD5 ad64e2cd5b2f35a7f97efba313a036dd
BLAKE2b-256 835e7df1af5cc71ea38b992c3d28ff5ba0e47a03bf7f3408c95571283b96ee7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81f1b2424b611285317d4827cc654166e486bdded9d48ba3f4ad441bc728c699
MD5 ca0ffaabb7fde0dba17568103b53163f
BLAKE2b-256 2496e0b542194198e09a5829e8f4400de382e2fc8e41e10b21de4e1a3b84d643

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