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

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.

Crates.io License: MIT WASM Pure Rust

日本語版 README


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 — a core problem in drug discovery and medicinal chemistry.

Built entirely in Rust with the chematic cheminformatics crate, RENKIN solves the fundamental speed and dependency problems of existing Python-based CASP tools (AiZynthFinder, ASKCOS, Retro*, etc.). It ships as:

  • CLI — single binary, cargo build --release
  • Python packageimport renkin via PyO3 + maturin
  • WASM module — 493 KB bundle, runs in the browser with no server

All from a single pure-Rust codebase with zero C/C++ dependencies.


Key Features

Feature Detail
Pure Rust Zero C/C++ dependencies. Cross-platform with cargo build alone
A* / AND-OR Tree Search Retro*-equivalent algorithm proven more efficient than MCTS for retrosynthesis
SA Score heuristic chematic::chem::sa_score guides search toward synthetically accessible precursors
Beam search --beam-width N limits heap size for memory-bounded exploration
Graph-based Ar–Ar cleavage Bridge-bond detection via DFS — correctly handles biaryl (Suzuki) disconnections
Parallel rule application rayon parallelises SMIRKS rule evaluation; sequential fallback on WASM
Python bindings maturin extension — import renkin; renkin.find_routes(...)
WASM-ready 493 KB bundle via wasm-pack; browser demo with 2D structure rendering
~400 building blocks Curated commercial starting materials covering esters, amines, halides, heterocycles, amino acids, sulfonyl chlorides, boronic acids and more
Benchmark CLI renkin-bench --input targets.smi produces a JSON success/timing report

Architecture

Target SMILES
     │
     ▼
┌─────────────────────────┐
│     chem_env.rs         │  ← chematic wrapper
│  - SMILES parse         │     SMARTS VF2 building-block check
│  - SMIRKS retro rules   │     fragment sanitization
│  - Building block check │     HashMap O(1) pre-filter
└────────────┬────────────┘
             │  par_iter (rayon / sequential on WASM)
             ▼
┌─────────────────────────┐
│      search.rs          │  ← A* / AND-OR Tree Search
│  - Priority queue       │     SA Score heuristic
│  - Closed list          │     beam search pruning
│  - Degenerate filter    │
└────────────┬────────────┘
             │
             ▼
┌─────────────────────────┐
│      score.rs           │  ← Heuristic / Cost Function
│  - SA Score (chematic)  │     h = Σ(1 + 0.5·(sa−1)/9)
│  - MW step cost         │     g = Σ(1 + total_mw/2000)
└────────────┬────────────┘
             │
             ▼
  JSON  ←  CLI / Python / WASM

Technology Stack

  • Language: Rust (Edition 2024)
  • Cheminformatics: chematic v0.4.9+
    • chematic-smiles — SMILES parsing & canonical SMILES
    • chematic-smarts — VF2 substructure matching (building block identity)
    • chematic-rxn — SMIRKS reaction application (run_reactants)
    • chematic-chem — SA Score, molecular weight, aromaticity descriptors
  • Search: A* + AND/OR Tree (Retro* equivalent)
  • Parallelism: rayon — parallel SMIRKS rule application
  • Python: PyO3 + maturin
  • WASM: wasm-bindgen + wasm-pack

Installation

As a library

# Cargo.toml
[dependencies]
renkin = "0.1"

CLI (from source)

git clone https://github.com/kent-tokyo/renkin
cd renkin
cargo build --release

Python

pip install maturin
git clone https://github.com/kent-tokyo/renkin && cd renkin
python -m venv .venv && source .venv/bin/activate
maturin develop --features python

Getting Started

CLI

# Retrosynthesis (Aspirin, depth 3)
./target/release/renkin --target "CC(=O)Oc1ccccc1C(=O)O" --depth 3

# With beam search (top-50 nodes)
./target/release/renkin --target "CC(=O)Oc1ccccc1C(=O)O" --depth 5 --beam-width 50
--target / -t      Target molecule SMILES
--depth  / -d      Max retrosynthesis depth (default: 5)
--max-routes / -n  Max routes to return (default: 5)
--beam-width / -w  Beam search width, 0 = unlimited A* (default: 0)
--building-blocks  Path to .smi file of commercial starting materials

Python

import renkin, json

routes = json.loads(renkin.find_routes(
    "CC(=O)Oc1ccccc1C(=O)O",   # Aspirin
    depth=3,
    max_routes=5,
))
print(routes["routes_found"])   # number of routes found
for r in routes["routes"]:
    print(r["depth"], [s["rule"] for s in r["steps"]])

WASM

wasm-pack build --target web --no-default-features
# Output: pkg/  (npm-ready package)
# Browser demo: python3 -m http.server 8080 → http://localhost:8080/demo/
import init, { find_routes } from './pkg/renkin.js';
await init();

const result = JSON.parse(find_routes(
  "CC(=O)Oc1ccccc1C(=O)O",  // target SMILES
  3,   // depth
  5,   // max_routes
  0,   // beam_width (0 = unlimited A*)
));
console.log(result.routes_found);

Benchmark

# Input: one SMILES per line, optional name after whitespace
./scripts/run_benchmark.sh --input data/benchmark_targets.smi --depth 5
{
  "total": 42, "solved": 37, "success_rate": 0.88,
  "avg_depth": 1.05, "avg_time_ms": 2.5,
  "results": [...]
}

CLI Output Example

{
  "target": "CC(=O)Oc1ccccc1C(=O)O",
  "routes_found": 2,
  "routes": [
    {
      "steps": [
        {
          "rule": "ester_cleavage",
          "target": "CC(=O)Oc1ccccc1C(=O)O",
          "precursors": ["CC(=O)O", "Oc1ccccc1C(=O)O"]
        }
      ],
      "depth": 1
    }
  ]
}

depth: 0 means the target itself is a commercially available starting material (buy directly).


Retro-Rules (14 total)

Rule Reaction type Strategy
ester_cleavage Ester → acid + alcohol SMIRKS
amide_cleavage Amide → acid + amine SMIRKS
friedel_crafts_acylation_retro Ar-C(=O)R → Ar-H + acyl chloride SMIRKS
aryl_carboxylation_retro Ar-COOH → Ar-H + CO₂ surrogate SMIRKS
aryl_amine_retro Ar-N → Ar-H + amine SMIRKS
buchwald_hartwig_retro Ar-N → Ar-Br + amine SMIRKS
aryl_ether_retro Ar-O → Ar-OH + fragment SMIRKS
suzuki_retro Ar-Ar → Ar-Br + Ar-H Graph (bridge-bond DFS)
cc_single_cleavage C–C → two fragments SMIRKS
wittig_retro C=C → C=O + C=O SMIRKS
reductive_amination_retro C–N → C=O + amine SMIRKS
cn_aliphatic_cleavage C–N → two fragments SMIRKS
co_aliphatic_cleavage C–O → two fragments SMIRKS
alcohol_oxidation_retro C–OH → C=O SMIRKS

suzuki_retro uses a graph-based bridge-bond algorithm instead of SMIRKS to correctly handle symmetric biaryls (biphenyl, 4-fluorobiphenyl, etc.) without the BFS leakage artifacts that affect SMIRKS-based approaches.


Project Structure

renkin/
├── Cargo.toml
├── src/
│   ├── lib.rs           # public library (DEFAULT_BUILDING_BLOCKS, re-exports)
│   ├── main.rs          # CLI binary
│   ├── bin/
│   │   └── benchmark.rs # renkin-bench binary
│   ├── chem_env.rs      # chematic wrapper — parse, retro rules, BB check
│   ├── score.rs         # SA Score heuristic + step cost
│   ├── search.rs        # A* / AND-OR tree engine + beam pruning
│   ├── python.rs        # PyO3 bindings (--features python)
│   └── wasm.rs          # wasm-bindgen bindings (cfg = wasm32)
├── data/
│   ├── building_blocks.smi      # Commercial starting materials (~400 entries)
│   └── benchmark_targets.smi   # 42-molecule benchmark set
├── demo/
│   └── index.html       # Browser WASM demo with 2D structure rendering
└── scripts/
    └── run_benchmark.sh # Benchmark runner with human-readable summary

Roadmap

  • Phase 1 — SMIRKS retro-reaction rules + fragment sanitization
  • Phase 2 — A* / AND-OR tree search, closed list, degenerate-route filter
  • Phase 3 — SA Score heuristic + beam search (--beam-width)
  • Phase 4 — Parallel rule application (rayon; sequential fallback on WASM)
  • Phase 5 — Python bindings (PyO3 + maturin)
  • Phase 6 — WASM build (493 KB, pkg/ npm-ready)
  • Phase 7 — Benchmark CLI (renkin-bench)
  • Phase 8 — 21 unit tests, SMIRKS rules 5→14, building blocks ~30→~400
  • Phase 9 — Browser WASM demo (SmilesDrawer 2D rendering), benchmark target set
  • Phase 10 — Graph-based biaryl cleavage (suzuki_retro), O(1) BB HashMap index
  • Phase 11 — Formal benchmark vs. AiZynthFinder / Retro* on USPTO-50k
  • Phase 12 — PyPI / npm publish

Competitive Landscape

Tool Language Algorithm WASM Zero-dep build
ASKCOS Python MCTS / A* No No (Docker, 64 GB RAM)
AiZynthFinder Python MCTS primary No No (conda, model download)
IBM RXN Closed Transformer No No (cloud only)
SYNTHIA Closed SMARTS + AND/OR No No (proprietary)
Retro* Python A* + AND/OR No No (unmaintained)
★ RENKIN Rust A* + AND/OR Yes Yes (cargo build)

All existing open CASP tools are Python-based. RENKIN fills the vacant niche: Rust-native, WASM-deployable, zero-dependency, A* search.


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.1.0.tar.gz (46.9 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.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (683.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

renkin-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (648.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.5 kB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (681.7 kB view details)

Uploaded CPython 3.15manylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (679.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (644.8 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp314-cp314-win_amd64.whl (450.4 kB view details)

Uploaded CPython 3.14Windows x86-64

renkin-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (680.4 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (645.6 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp314-cp314-macosx_11_0_arm64.whl (577.9 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

renkin-0.1.0-cp313-cp313-win_amd64.whl (448.7 kB view details)

Uploaded CPython 3.13Windows x86-64

renkin-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (679.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (644.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (531.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

renkin-0.1.0-cp312-cp312-win_amd64.whl (448.7 kB view details)

Uploaded CPython 3.12Windows x86-64

renkin-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (679.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (644.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (576.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

renkin-0.1.0-cp311-cp311-win_amd64.whl (450.8 kB view details)

Uploaded CPython 3.11Windows x86-64

renkin-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (682.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (647.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (581.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

renkin-0.1.0-cp310-cp310-win_amd64.whl (450.8 kB view details)

Uploaded CPython 3.10Windows x86-64

renkin-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (682.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (647.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (683.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

renkin-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (648.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

renkin-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (648.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

File details

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

File metadata

  • Download URL: renkin-0.1.0.tar.gz
  • Upload date:
  • Size: 46.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.6

File hashes

Hashes for renkin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 8660dc7bd6461b0fa581e65e850904e366e28aa41cf41b3413cfab7874d66cd5
MD5 d8cd8683a9d4e754e326b415d1a2e004
BLAKE2b-256 da0ce40b4754af66a7b16972bfa14b6b93cf704d602d471bae64b312ee8e3273

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e5690ac3778bca1e9bef1d149e372058ead353b41b1f92f911115ce7e5f3128
MD5 ae637a321033a1f289f45f5e1bb0d8e8
BLAKE2b-256 9593e5f6eb505cb19f07382431929374bf7f1b9fd5918f185e0099e16ec0b65e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dfe24c65972086555f14179b0e57de551bf83ef449e74f76b9c2cc867c0af276
MD5 5ae4d236a765766a18a8a4e409bcd15b
BLAKE2b-256 f7be9ada57304500e5004d9cdfbb6a9675c71d1f67740e6427c438ac7096f323

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca42d7096330e9e967862a5f9ff681528b365b69c8121e19ce781c1c91bdc763
MD5 61fb6c2d169ce5f9adef83ca9c07ddc1
BLAKE2b-256 40051eccb4f07982725f95fb1d1e37ac9f787cef4c922b46b3b243554a13c08c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 468fe5f68d5cc6c9f8956dc17d1c3a748bfa6f9712a3918d771b1f897bd32b94
MD5 eb99f45e9d39d45528df11d2f787d7c7
BLAKE2b-256 4af4bcd6df65f0b8203e9bfe91f0c944fce44ef1c070c8a88a0e5cf84be5220a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc7197d2fd59cf4b601faf796f9a8a7d8ea46e3b666bda77d3b883dbe1a4d2a7
MD5 534c375f26eb22fd18e2db96a136af0a
BLAKE2b-256 5ffdf9ebe5a3ffbc7588e9e5df825bfc810aaa90fd3a0407d2034fb031209bb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8a30c4fa0b221a04a766136ee8b1cf3ba7f6b404356d880f6c2f974a53dc9898
MD5 06bd47e497eeae4dae860292d9d59436
BLAKE2b-256 2ccf0073bbbbe36bb7554f71e197fabc3dc24e7ef71b7b3a61998407f29a9613

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.1.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 450.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.1.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a6bd2b86a89fecc21f75b0c7dd16a4f71d3d67f94f2f7f478c1b1f1ec0d9727b
MD5 6fd3e25c2755554dcef4ba502bec305a
BLAKE2b-256 98e0df65db9b2e66d2e7f481bf9b898347d77061323861217792fa32b166b19a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4513f81968a88306d6d54773856e5b1e4650a60ccf6cf9ff58f9bce021e931b
MD5 6fab3f343e53f4b1f510692ac4e6b01b
BLAKE2b-256 5408b947bcf4a97ea82bee67692ed68916ebb4e6277a7f0a3636a012f3ebe885

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ffe868d36eaf8bbedd40ec5cce1cd024e1be55c2ee1fbb2925cd15f9796234f9
MD5 48996289022794f3a12c035241790c11
BLAKE2b-256 cb66a9019c83795e119ed092120107a4ebd78bf312f2cc0d8c6f22100d06d570

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 14ac8095726d2f6b1bb5c5ea74b9b4c98c83e8c31aac03e7add4c9015e707951
MD5 7c1666634751767a63175b3e3b06bfc4
BLAKE2b-256 ae02bcfdf08b7341669b977d49ef47d302fc2629e918e8e8fffd161ee3bb9400

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 448.7 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.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0bef10cee52c9078f3002173a2b362c633cc1bde41b86a8e61bbe2b35dbf7a72
MD5 c148f2cda0fb6525cb016b742011c017
BLAKE2b-256 94296ab44be3927798e03d5c17cb37eed683973c154a2508c56d66d2e00c44ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 73b75faee82ebe7a2902e06d2050d91c06875c24be6873ef18a2ebe5a0e16bca
MD5 f4ac3abb43fa2efaf628063124594d47
BLAKE2b-256 237021f703d70c98929a9c0ed2f78f51486e5411c7ff05ce7b714c19db3124b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4e244187bd191ebfd3db413a4bb78fcfafc8de102419cc4955255d9e556efc4c
MD5 7675296c32103bf72dfe0c8244ed3db3
BLAKE2b-256 417b86caa1e6498b9e228a08fbb056147d96af222b3a6d1a4924882ae09581a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b23d2ed8f33171254dca59e69994fe3da2f83534affa36530f5671f7e0886b6f
MD5 5ea518940a0a0dc28017ecf0f6cf57d2
BLAKE2b-256 c717eb2a7d4ea36758d82920cb8dde4571079f0592074b3540c1c8f9d2761a15

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 448.7 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.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5addeb69ac58015938565c30219688d89ead489ecb559eecfb60f5b40e849f75
MD5 4f92da4161e9125b332366b1b783bacb
BLAKE2b-256 502561e7fef1c207c2e676bfccab57cf5eb562dff488955fdb36816b04a040da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 93312f9e2f8051fd8a12f299ab252ffbf99ca6e2f0c6c1af6abd71ae1e9ca869
MD5 810903498ea8af5dce9763c573cc9a4a
BLAKE2b-256 3e992aedca44f2c73e9992648dcbccaffc560879cc0d5dd0fc11b4659b0209dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 37516218f3e49d9bf98185f040ccc6ca11dd8661d169e2b0b5ce72238d58cd8a
MD5 3754faceeeddca20c7642ccbc024e33e
BLAKE2b-256 0a533ce4e43cfa1b72ee85a5583d1c9eedb91d30683bd5caa6014dcb7f1037a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b0ab0e771fc94705f1863ed1f247227a0f57e9104834536fc8e17078dcb9534
MD5 0076bb23073461efbb3658154c607698
BLAKE2b-256 d33655847d4c39c0cb8120093a65443c874fb765f6ecd49ff62bf3174d6044a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 450.8 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.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2d8e6565c4d2c7d0cb2011b604796d7f529f4972f81ade37ed908161892272c7
MD5 d169004e36f05743280eede3be589f35
BLAKE2b-256 7d391d10ea2e08a74231ad855bcda1af10614f5764d77d9ec9389f4c1190b167

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae8c8f923b32d2311d8225949308874c69ca29b2eb1c9694087b76548a63a85e
MD5 adfffe438eff98a7c3bb42ca84f6cf59
BLAKE2b-256 720f4e65a6a17a8bbda591fae368d785bf595dc6ac4f75df786bc6b675205bcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b6a89cd533294c99116f1ced8911b34df12fc207ba512030dd3cac1336dec107
MD5 c7711b975f54de101acf3ccb7ab7717f
BLAKE2b-256 cb90c19915aadd3f8602957bec055e31e62283a7dada746890d773ffba99ffbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a0f3589e1166c82246637150fe95463ad67d13698bf5f98d65974f62d315764c
MD5 2d0ceb47bae71ecea34c837279258c95
BLAKE2b-256 95116370847196513b52cecfcec5b640b9de0de61c1c6da3eb8e63607159c640

See more details on using hashes here.

File details

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

File metadata

  • Download URL: renkin-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 450.8 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.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 25d1da803cc4f304d771c54de35155142a0d0ea5fb9af7d8ac378f8e3e20c791
MD5 b565028670fc3b9a82b6af7e4d25b9f0
BLAKE2b-256 76103ff2502ba2e531de55f56b73efe8194e64d89c2f1cdf6ebda4560e1a38c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1a14f2ac9623530071b8d0dfd250562a8182120d62ad68486ecd5c0381e1892
MD5 25afee3a3c43149a4b417cb2671bfd98
BLAKE2b-256 d9533a519ff7775c73ddd5f2767aba61e4a332c6e5ba5dc4bcb53c3ca9842c8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 edbe5027789ffb492c24bbe75f32567fd729a510333b23e0d1092db6eec25426
MD5 42e2e0efcec867f7ade4d2b126f550d1
BLAKE2b-256 cdd071b35f3130d21f5cf5c2c0121779ae08e0dfc7a8561c0e2603e9697b91cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3fa4d0a23a99e47b8ea9acb1d75382628b28506082f8f32bce05ee4eb52331ba
MD5 30fc57061f7ddc720316588e253eb751
BLAKE2b-256 ff4e6eb1c45ecf1c31e27532198c868677fc5c6d5ec6a29c370a4f00292d547d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bbabde3031be9574a757173bfe957bca25f336122dc9b2a6b0f4040d265e5004
MD5 306df5179d845bc16596cd7df3e36288
BLAKE2b-256 fd335cd9df499910d54c117234df32ccd3edbfa2d675099edd893543a614960f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for renkin-0.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e6d1dda5164321f1a83befdc2b1a053a51838c05a1e974493c28e388f4c065af
MD5 78a0b4e0a56953541d8f55c01d35b881
BLAKE2b-256 f81c0c867a4376712eadd176745d2ad216b36056a890ea40554935b81e275c40

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