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

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))
│  - 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 — 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}: Retrosynthetic Exploration Network 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.2.tar.gz (154.8 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.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (818.0 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

renkin-0.15.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (777.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

renkin-0.15.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.1 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

renkin-0.15.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (814.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

renkin-0.15.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

renkin-0.15.2-cp314-cp314-win_amd64.whl (577.7 kB view details)

Uploaded CPython 3.14Windows x86-64

renkin-0.15.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (815.1 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

renkin-0.15.2-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.2-cp314-cp314-macosx_11_0_arm64.whl (703.2 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

renkin-0.15.2-cp313-cp313-win_amd64.whl (576.5 kB view details)

Uploaded CPython 3.13Windows x86-64

renkin-0.15.2-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.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.13macOS 11.0+ ARM64

renkin-0.15.2-cp312-cp312-win_amd64.whl (576.8 kB view details)

Uploaded CPython 3.12Windows x86-64

renkin-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (813.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

renkin-0.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (773.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

renkin-0.15.2-cp311-cp311-win_amd64.whl (580.0 kB view details)

Uploaded CPython 3.11Windows x86-64

renkin-0.15.2-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.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

renkin-0.15.2-cp311-cp311-macosx_11_0_arm64.whl (704.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

renkin-0.15.2-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.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

renkin-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (817.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

renkin-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

renkin-0.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (776.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: renkin-0.15.2.tar.gz
  • Upload date:
  • Size: 154.8 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.2.tar.gz
Algorithm Hash digest
SHA256 89d5b477eb8c093c919e9b78ac118150bf973435559da6329bcf2b90670528b0
MD5 c2af1bbf2e3416dc2f3b50bb03dcb2a9
BLAKE2b-256 f2f6f7b1e52841423bfbcb7a6c75ba2ece5bcf7c5349fb4708141cbf05aa41dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f96a85ddf8224fb0cb2d2910e1e87b602bf1fa778ff288fda21663bddd41d2f5
MD5 0ddf7a9083f71fb361ee0c933e051a4a
BLAKE2b-256 4ec59fda599849cc9dbf270541f90c1fdc04d21833da536085a092c3c8e10908

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7817f568cd6820f13434a85eb368af075efb9f62aed4e841c0ba1fb19d4f428c
MD5 e788ee1020896444a631d845588996b0
BLAKE2b-256 a97a8f158c1621c397d47a0b68849393d6cbf2905999f220d9976384fed8d1ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84d0cd564523008a60df57c6500ba717606ead1f355658b2a938ec1eda30e504
MD5 9fee37d360460131a6184223410c9ef9
BLAKE2b-256 b7fcd1a3289320bfd6f7aed11be40570b0315c046b49462cdcb7aa01c020ccc2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a44e8074a6c8e8c6339596f74af4ac32c2494397775136e087db9596007b781
MD5 da847ddfed7c18fe407986d5e5c78ae7
BLAKE2b-256 5fb1badaf19e4e6781e3b8f936fd248ecf3898954ffaef74226ffb8b9a3b2d3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 58c89ee51839178a887773bc1d60e65132c5155827bd28cc16d9ca62a5729669
MD5 572c9173dd98f364cfe7b65c0efa0db4
BLAKE2b-256 77a0028dc895da9073a357c387df0fdb9c4eeed246dc5254137939a163516249

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 16b1588a7cb36123cd386c73347b7f78212c3e87e0239372d6e42230e89b492d
MD5 4190cd379ba1484ed679f8ae725af192
BLAKE2b-256 f5b29f92d1e5eba35ff394cfc10dae0251b38d23447e63f4caf679ae1a46ee89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.2-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 577.7 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.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5794c1271f85110c131d19b3f4175e293e1054d6810c7086d9b28035b5af042d
MD5 f54f5ecbc7b1e03ae38097b89f210971
BLAKE2b-256 a1e9e50b098b73618d09e14b667b31d74a7ef54ee00479f74cd922b06339654c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 adc2e7ac3a2be94b60f9c44ec22abf86523151c9d3ce5214fcc153593bbb048b
MD5 be5565ad8e28e3995819e83bff10a465
BLAKE2b-256 2a8eccdaae57a252d6727c43b7658a132ff60d1db6a2d16422f1b2ccbe165c0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c88977ee8a68f803475cbcf09d3538ff881684beb7a606cf41f7dd51f2195336
MD5 662ac6acedac0210db052a0de93e5cce
BLAKE2b-256 6348949736a8a6ce9f4d839699629c6ffc44c20b1ab0ba97d6aff07e3ef1e786

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f47ad3e10ee9ec249507d1583ff36f1078fe961190ef7ffb501a64919b12a3f6
MD5 05eeda8ad4c88ff2791b498e57df6588
BLAKE2b-256 5c64f7b00668c1bc9079bccd9d38890cc5468ef6e2387f8ac33bc63c4e183cf0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 576.5 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.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 01382166d6da8e5c2c6dfae591837056d4758b8ad077e9117dc63bd5d6a141ea
MD5 276f309ece64156b87f9f8ea51de4f2f
BLAKE2b-256 2e80dd7fd466b18a8b344d09fe5a6b970dfe228f3c5bc975d6f270d9928a6825

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3b9cb11af09f21f5796572168e6af5460d7a02f166d19b80384302bc7befa685
MD5 aedb93aeb2b45c7559345ecccfa70d99
BLAKE2b-256 179b60148a7c47e3e5e45ef05e0a5300504d2e272caf3015777627919bb94cc9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f1e82fb5fbafa948b0af1303adabf69ba8d16b418e715db2dbc182c0ef74211e
MD5 606af12303342f05c5318e1228a0571d
BLAKE2b-256 31598814d6b65094a61f6e43fb9919acf18f424280b119bebe74846df5c01801

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0acca7fc4139987280689bc53141d1c067bced965b0db47eb3f61bdfffc75a74
MD5 7c6c3770321c9a5e7e9a765c2277ddd1
BLAKE2b-256 ac3d3b7ddf748b591a84d656599c239a67c2ad46f005e575a53f3e1ae329e43e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 576.8 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.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7e97672356304847c6af3206309db615124ee75169388ad0e0c90ca8484eb10e
MD5 fdf4f3a68678a1935593d0f2a57c8b17
BLAKE2b-256 3816cd9a14a977c98d7e52cd558a28af63b7b74e7b51f1c656ea4c0c6d784763

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6a04f4477f057d10f3df7492c705bfb929c31623e8107d15948642e3c4d3218a
MD5 e9a3137bc39fd124f7bffd4dcf05db5c
BLAKE2b-256 d31d78570ca957a8880e5e56cece26b4577739ac249b544b2a9b9b23236489be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 31e982f465ef20268d82c289c885dabe154b868b0548d263521cd4a1acb660e0
MD5 49d33738ddf56b72a36e21b9b264b36e
BLAKE2b-256 472a7c4a953df77f9cd72f64732516292cafd755ec08684653ef2219339dfaeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 506cd03f2ad45384246ad1f57d688b335783a2fd3bd7bcd07f8c07f89fc40ac7
MD5 08e2799372fce90f2e025d3ccb4e4b61
BLAKE2b-256 3239c6465265c76f33ca3efc1c1789de2c2917937352596737d98cee13805644

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 580.0 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2a0f22d07f893c436ce0a1a25ca1b9e1ea94f6b72392cac03b7e5a1d4d04bbc8
MD5 94cb641f7a942019601de9904dcd23f1
BLAKE2b-256 8c5edc5ad4ce957264875990aaf7432373bd941e2d2c6facc630a9af219b01cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9384de7620f02d3c3b685d704c2e513c5e1ed2f095852d5e88673b43bcc90a3
MD5 f028fd834141b56d3b12af8432a7e4ed
BLAKE2b-256 6153840004a9993f434a9aae9e778afbfe7aac3796156cdec568562ab772a4af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eec78cbdfa103dc78d8de0ff8d7bbbbd82e9a29b7a59020cb9034e5a36c9da71
MD5 3cc796b05dca59f24bd740f258d92e13
BLAKE2b-256 c3383d69676de7b545e75c56bebdd54ae05e9b8e1086df35f1dd8678d0ac8427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a48790457fc2222186585d2e5a384c3952dc59cb3967d6737ed110f9898e31f1
MD5 5d965e9cc23385f56f0848db5d0f0d35
BLAKE2b-256 9973640c71d6111e3b57e4e6341cbbfe57984a4e102553bd69123668bc1654e1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.15.2-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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 543df6318a2f6567cacfae4bdf94e6911a6b1f85c9fcaa8c485c21e7cd67825d
MD5 fbfc7b6c5049f091accacf2a583dcc12
BLAKE2b-256 7f7d234fc049d7bd0f9a3cea66c03c113594eb82c474a6decb685b9ff3b6cfd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9dfc4366b6899b2f6f8e8d153ecdd2d7e62d6aab27048d1613c30f6f230942f
MD5 329f3ef06e14156135166b52105e0059
BLAKE2b-256 d8f77e917d92f233643c6eda8e4dc2bd7c5829f5f1ce326863e914f179d3c338

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 be191230c4170c942527e6d253d6773adb74e824864351f2e9869a074512f6b1
MD5 3099d275a23f10bd477af9710bb69ff6
BLAKE2b-256 65a6910e4f5eaf819aa7375de9a3d13bf5f7f4418c7901d35504ae08c9be1924

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9a385ced682aa26e78db3e2737d1456237d9048bbd6226e8914b8a628a309e1e
MD5 74e03364b014e49d1cc02bd8df9799c1
BLAKE2b-256 9e337c6557115f77afadcae6d1b2f0828477797b3fbd4b5384ee1cc6027b3fd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 942af4e543612c32997a036f101cf5f513a6ada527c4e753a3a00bd1464cb61d
MD5 ae1512c760d30afe60f6dd60e338f6af
BLAKE2b-256 388e05d2d4c0d30dbda493eb9b4f52f68870f4144bb3e56987efd4d8cdba3840

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.15.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 50eece5780864f68d460c7724505b127e6d5477b03d012f7c8fa8a220fe8794c
MD5 56d30bb20ae35a6087ee0c965ee6dd57
BLAKE2b-256 49141527a1f4bd28c7609587eeace8b0021b7f082e19e61f642e418ed3973a89

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