Skip to main content

Scrybe Mermaid — standalone PNG iTXt codec (Rust-backed)

Project description

scrybe-mermaid

Standalone PNG iTXt codec: embeds and extracts Mermaid diagram source as invisible metadata inside a PNG file. Python on the outside, Rust on the inside.

What it does

Uses the PNG iTXt (international text) metadata chunk mechanism to store Mermaid diagram source alongside the rendered image. The PNG is fully valid and renders normally in any image viewer. The source text travels with the image and can be round-tripped without loss.

Codec format

  • Chunk key: scrybe-mermaid
  • Value: JSON { "source": "<mermaid source>", "sha256": "<hex>" }

The sha256 field is a SHA-256 digest of the source bytes for lightweight integrity verification.

Role in the architecture

scrybe-mermaid is a self-contained utility crate with no dependency on scrybe-core. It is used by scrybe-mcp-server (the embed/extract tools), scrybe-cli (scrybe mermaid embed/extract/verify), and the Tauri backend.

Key public types and entry points

Symbol Description
embed(png_bytes, source) -> Result<Vec<u8>> Inserts iTXt chunk; returns modified PNG bytes
extract(png_bytes) -> Result<MermaidPayload> Reads and parses the iTXt chunk
MermaidPayload source: String + sha256: String
MermaidError Error type covering missing chunk, malformed JSON, PNG decode failure

Build and test

cargo build -p scrybe-mermaid
cargo test -p scrybe-mermaid

Depends on the png crate for chunk-level PNG manipulation and base64 for encoding the iTXt payload. No external binaries required.

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

scrybe_mermaid-0.1.1.tar.gz (44.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_mermaid-0.1.1-cp39-abi3-win_amd64.whl (188.8 kB view details)

Uploaded CPython 3.9+Windows x86-64

scrybe_mermaid-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (336.7 kB view details)

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

scrybe_mermaid-0.1.1-cp39-abi3-macosx_11_0_arm64.whl (294.9 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

Details for the file scrybe_mermaid-0.1.1.tar.gz.

File metadata

  • Download URL: scrybe_mermaid-0.1.1.tar.gz
  • Upload date:
  • Size: 44.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scrybe_mermaid-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d987355ada3cc7504b0d04b2baf90d1951286871b489d42bd74b7ae8044e9d10
MD5 f5b00e90b8f9835d4e930ebef27c0978
BLAKE2b-256 c636eaed3c5d891588e93adba38ba0b508773e2c4c412f174d80744d1f392324

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_mermaid-0.1.1.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_mermaid-0.1.1-cp39-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for scrybe_mermaid-0.1.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6dccc1eb6a90f0aba2eab356b69d5a85cfb6e2675ed7853c7bb5b1ed93b36170
MD5 6f0edbab529e405bc9c7f3a34c636161
BLAKE2b-256 f2dcc9840da34f4c77f02e639fc11c706b44522718938246ddd7714b1b1907c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_mermaid-0.1.1-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_mermaid-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for scrybe_mermaid-0.1.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6018230b80492a45be1e037344f53fdbe2ebe3c7a58cf10eb67032d819ed0212
MD5 ef3294046845d50bbb1e842265ffa917
BLAKE2b-256 9af4560d232712292201b04e439361c39a7bb51f1947d47ffeb568e6dbc74128

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_mermaid-0.1.1-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_mermaid-0.1.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for scrybe_mermaid-0.1.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cbbd978ade01ec567c241946f55070d734d2a47d21fe4b72d9855b7372381440
MD5 75a0028e148ccff37114daa732df6f5b
BLAKE2b-256 8207b2f5bc7758a00817bd2ce0ca96583d6822b614a741100fb41f213f91b62e

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_mermaid-0.1.1-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 Pingdom Monitoring Sentry Error logging StatusPage Status page