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.0.tar.gz (44.4 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.0-cp39-abi3-win_amd64.whl (188.8 kB view details)

Uploaded CPython 3.9+Windows x86-64

scrybe_mermaid-0.1.0-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.0-cp39-abi3-macosx_11_0_arm64.whl (295.0 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: scrybe_mermaid-0.1.0.tar.gz
  • Upload date:
  • Size: 44.4 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.0.tar.gz
Algorithm Hash digest
SHA256 efb0832cc4ad4868b42c4ed799b9372a87913c7008b08923580aa570f671df3a
MD5 d47600debd690abdb88764caf444a8a3
BLAKE2b-256 6308c4c8ec8140d10337be7913ac1c1a98ef2b4f2c8392b0f46cb918087e6f38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for scrybe_mermaid-0.1.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 172172e8d67c6d3da1c5422266520e2c98be003772b8060fdf7b4ddfcdf40876
MD5 3d97e7134703f9e98abc0f23b0f58063
BLAKE2b-256 66654d927f68ab2fa7e448edcc5026c30fe101367bc9b5731af36f714bdffe9b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for scrybe_mermaid-0.1.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5fe402d9f921e0fcfbc8c2cfe1f98e7b479f7bcb5b3273349f3ced6dd4e9f7b9
MD5 d977711d23b6754df0cde3bd15650b0f
BLAKE2b-256 96e4221820216fe3d2f88927d55e4d5e3e95091e9c0778e8e52f8a85e1d75e58

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for scrybe_mermaid-0.1.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c177ae397e1a6e9d2f622cc1a97fc22595d63fe93fbf641a9a3c159ebe51d57e
MD5 4a5320518e34a5b09f47003e3c248d2c
BLAKE2b-256 bb8cdf42c9fe3d631a537da95eaf4d8a7acd01ec4aaa5cb488d28691f17a29ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrybe_mermaid-0.1.0-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