Skip to main content

scrybe-py

PyO3 bindings that expose scrybe-core and scrybe-render to Python as the scrybe._rust native extension module. Python on the outside, Rust on the inside — this crate is the seam between the two.

What it does

Wraps the Rust Document, ContentDigest, and render_html in Python-callable classes and functions. Python code (the scrybe package, plugins, and the gila scrybe CLI integration) calls these via the compiled extension module without any Rust toolchain at runtime.

Role in the architecture

scrybe-py is a thin translation layer. It re-exports scrybe-core and scrybe-render types directly and adds only the PyO3 #[pyclass] wrappers needed for the Python boundary. The module is built with maturin and installed as scrybe/_rust.so (Linux/macOS) or scrybe/_rust.pyd (Windows).

Key public types and entry points

Python name Rust source Description
scrybe._rust.Document scrybe_core::Document Load, inspect, and render Markdown; content_digest() (deprecated content_id() retained), render_html(theme?), ast_title()
scrybe._rust.ContentDigest scrybe_core::ContentDigest ContentDigest.of(bytes), verify(bytes), as_hex(); bare BLAKE3 hex digest, not a CID. ContentId remains as a deprecated alias
scrybe._rust.render_markdown(source, theme?) scrybe_render::render_html One-shot render without opening a Document object

The python feature gate controls whether PyO3 bindings are compiled in. The crate can also be used as a plain Rust library (re-exporting core types) without the feature.

Build and test

# Build the Python extension (editable install into active venv)
maturin develop --features python,extension-module

# Run Rust unit tests (no Python required)
cargo test -p scrybe-py

# Smoke test from Python
python -c "from scrybe._rust import Document; d = Document('# Hi'); print(d.content_digest())"

Requires maturin (pip install maturin) and a Rust toolchain. The workspace Cargo.toml pins pyo3 = "0.28" with auto-initialize.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scrybe_py-0.6.3.tar.gz (72.6 kB view details)

Uploaded Source

Built Distributions

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

scrybe_py-0.6.3-cp39-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.9+Windows x86-64

scrybe_py-0.6.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

scrybe_py-0.6.3-cp39-abi3-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file scrybe_py-0.6.3.tar.gz.

File metadata

  • Download URL: scrybe_py-0.6.3.tar.gz
  • Upload date:
  • Size: 72.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for scrybe_py-0.6.3.tar.gz
Algorithm Hash digest
SHA256 74a7ea5b54879cbb4616f571f7039e73382ed854fad56a7bdc6b28cb11b8a6e6
MD5 a30749017245e6967b2b481a3028d91c
BLAKE2b-256 30592fcd2b5440975a34a703b040a1c0a3c468f8be7a58a25c419a2f48b5a369

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_py-0.6.3.tar.gz:

Publisher: release.yml on hartsock/scrybe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scrybe_py-0.6.3-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: scrybe_py-0.6.3-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for scrybe_py-0.6.3-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2cad34aa182823880bb7fb2bd60f2fb9a117ed0b309521fb45e3a1e4c5b93f82
MD5 cf2b4ad750293c09448435b62bef6794
BLAKE2b-256 f3b8a797581e4d86a21a5bb6a28853106c6d33f5af0ee8ee0b0570f4dbf8f4dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_py-0.6.3-cp39-abi3-win_amd64.whl:

Publisher: release.yml on hartsock/scrybe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scrybe_py-0.6.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scrybe_py-0.6.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 71cd418804fad445fea4eb2f442fde1652f78424a7c0d8ab3b2f84514782d9ed
MD5 c3efa8d4092d58f9f4744235fb8dbd45
BLAKE2b-256 a345735370d2cdf108272cb574369e97d610817c38f9c9baf078dada92bad914

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_py-0.6.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on hartsock/scrybe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scrybe_py-0.6.3-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scrybe_py-0.6.3-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eba6751372f6b90e1a032579b720b9b20aaf7adc595935e6f239adcc72e657fe
MD5 3a938798d64d2fa584aa614cd8aba90e
BLAKE2b-256 5e67dedbf4424c83b870dc432dc2065de47a3d4c136e0ad1344bd5be66c4dfb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_py-0.6.3-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on hartsock/scrybe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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