Skip to main content

yeptris — YAML for Python at libleptris speed

An FFI-based (no C extension) YAML library over libyeptris — the YAML counterpart of libleptris. PyYAML-compatible semantics, one shared library, zero compilation at install.

Part of the yeptris program: the best (multiple dimensions) YAML/JSON parser/builder ever — conformance, performance, safety/hardening, API surfaces, transport correctness, and trust, held simultaneously, in C, Ruby, Rust, and JS. This binding carries the PyYAML-compatible surface plus CBOR, tracking every libyeptris release in lockstep. The achievement program lives in the engine's PLAN.md ("The best-ever program").

Install (development)

# the sibling C checkout: ~/src/leptris/yeptris
cmake -B build -S . -DCMAKE_BUILD_TYPE=Release -DYEPTRIS_BUILD_SHARED=ON
cmake --build build

cd ~/src/leptris/yeptris-py
YEPTRIS_LIB_PATH=../yeptris/build/src/libyeptris.dylib python3 -m pytest

Without YEPTRIS_LIB_PATH the loader falls back to a vendored yeptris/_platform/<tag>/ copy, then to the sibling checkout's build directory. Any libyeptris.{so,dylib,dll} path works.

Usage

import yeptris
from yeptris import yaml  # PyYAML-compatible surface

yaml.safe_load("name: yeptris\nrating: 10\n")
# {'name': 'yeptris', 'rating': 10}

yaml.safe_load_all("--- 1\n--- two\n")   # [1, 'two']
yaml.safe_dump({"b": 2, "a": [1, "x"]})  # 'a:\n  - 1\n  - x\nb: 2\n'

yeptris.load("k: v")        # the neutral surface
yeptris.dump({"k": [1, 2]})

Typing follows PyYAML's SafeLoader (YAML 1.1 implicit typing): yes/no/on/off booleans, 0x/leading-0/0b/sexagesimal integers, dot-required floats, timestamps with offsets, merge keys, anchor identity. Every deliberate divergence is pinned by a test.

Design

One parse, one bulk drain: the record array and string arena are read in two FFI calls, then a pure-Python walk over the unpacked records — the FFI tax is O(1) per document, never per event (the same seam yeptris-ruby rides). The 36-byte record layout is ABI-pinned in the C header and mirrored in _ffi.py.

Performance

python3 bench.py — same-process comparison against PyYAML (pure) and CSafeLoader/CDumper (libyaml C extensions):

  • load: 28-39x PyYAML pure, 3.8-6.1x CSafeLoader
  • dump: ~1.7x PyYAML pure, ~2x behind CDumper (which walks the tree entirely in C — a no-C-extension design's ceiling is the Python walk itself; the tree raises through ONE yeptris_document_build call)

Both directions are O(chunks) in FFI calls: loads drain records in two calls, dumps build through one flat entry array.

JSON (strict RFC 8259) — yeptris.json

yeptris.json.loads is json.loads-compatible (values, rejects, types, json.JSONDecodeError — including stdlib's default NaN/ Infinity constant quirk) with two engines behind one contract:

  • native — the opt-in extension ext/yeptris_native.c: a fused scan-kernel descent over libyeptris (the same shape as the Ruby binding's materializer), with a 1024-slot interned-free key cache. Build it with YEPTRIS_LIB_PATH + YEPTRIS_SRC set (python3 setup.py build_ext --inplace); CI builds and gates it.
  • strict-ffi — the default pure path: yeptris_parse_json is the validator gate, then the columnar value walk converts under JSON rules. No C extension, correct everywhere.

benchmark/json_profile.py is the referee (order-alternating interleave vs the C scanner): the native engine runs 0.67-0.87x json.loads mean (83-85% head-to-head) on the 144 KB reference corpus; shape decomposition: int arrays 0.63x, float arrays 0.77x, long strings 0.85x, unique-key maps 0.95x. The previous pure walk was ~15x BEHIND — the fused materializer is the entire gap.

Installing the native JSON engine (platform wheels)

pip install yeptris on macOS (arm64) and manylinux (x86_64) installs platform wheels that vendor libyeptris and the native JSON materializer (abi3 — one wheel per platform serves CPython 3.9+): zero compiler, zero env vars, yeptris.json.engine() is native out of the box. Every wheel is release-smoked in a clean venv before publish. Other platforms install the pure package (the strict-ffi JSON engine + YAML via libyeptris through the YEPTRIS_LIB_PATH ladder); building the extension from source is YEPTRIS_LIB_PATH=... YEPTRIS_SRC=... python3 setup.py build_ext --inplace.

Metadata

Release files for yeptris 0.6.56.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yeptris 0.6.56.0
File Size Uploaded Provenance Actions
yeptris-0.6.56.0.tar.gz 378.6 kB With provenance Details for yeptris-0.6.56.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for yeptris 0.6.56.0
File Actions
yeptris-0.6.56.0-py3-none-any.whl Python 3 none any Details for yeptris-0.6.56.0-py3-none-any.whl
yeptris-0.6.56.0-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details for yeptris-0.6.56.0-cp39-abi3-win_arm64.whl
yeptris-0.6.56.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details for yeptris-0.6.56.0-cp39-abi3-win_amd64.whl
yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details for yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_x86_64.whl
yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details for yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_aarch64.whl
yeptris-0.6.56.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details for yeptris-0.6.56.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
yeptris-0.6.56.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details for yeptris-0.6.56.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
yeptris-0.6.56.0-cp39-abi3-macosx_11_0_x86_64.whl CPython 3.9 abi3 macOS 11.0+ x86-64 Details for yeptris-0.6.56.0-cp39-abi3-macosx_11_0_x86_64.whl
yeptris-0.6.56.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details for yeptris-0.6.56.0-cp39-abi3-macosx_11_0_arm64.whl

Total release size: 10.4 MB

Release files / yeptris-0.6.56.0.tar.gz

Download URL yeptris-0.6.56.0.tar.gz
Size 378.6 kB
Tags Source
SHA-256 checksum
How to use checksums
706c79eb85df80ce89ab84c27a23031dcfd32ede36422320c3fb55514a2577a1
BLAKE2b-256 checksum
How to use checksums
cc1df1ee3fc10bce01bfb98a07a886510f2c6e6938108e4f996eb6a5f268b001
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-py3-none-any.whl

Download URL yeptris-0.6.56.0-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c6a07ab6cbe3049ee5449f9bf778f13ca0c3be09a92b9049ad31b2933681cfb4
BLAKE2b-256 checksum
How to use checksums
e952fd4b2fee345286a6e323f515bc08ab458d20a719a07c050258888c6aa06f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-win_arm64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-win_arm64.whl
Size 1.1 MB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
12e8dc3069cbdaa8ea70652ded58bc29e033cee9f20b9cf29bad2d35849033db
BLAKE2b-256 checksum
How to use checksums
1f5de538dd73fafee3fb9caef4a24ea8a6903fcfe133d9052fb9974ca3782097
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-win_amd64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-win_amd64.whl
Size 1.1 MB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d7d22aff297736a0039ef150814bf3b29f647bd3c05f9fd0dc4144ecd9ae9976
BLAKE2b-256 checksum
How to use checksums
efceff3f6182c1dec6de978059bca786772d1524c732ad93c2d1e8e8a0c5eb61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 1.5 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
a9c2f5a1601b95567ffaba7d86812686d1eaea1a02fc35097e26f416672231e0
BLAKE2b-256 checksum
How to use checksums
40938e3e5be226d83e009a24d90cfb529c8a1013199e4f2b37c79cc324d6620c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 1.6 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
cc241d0254b89772fa30fc03abf7b35f1d3f2c60b627d616476d3aff40b3b17f
BLAKE2b-256 checksum
How to use checksums
fc265d0d81374fe5b1fa66d4b0ed9b7b9d38a5a2ab794f846995b5f90a24feb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
ec1433a2f7b70b3afeb14a77a7f0a44e00a66ac7c575e2f816cfc1aa069f59d3
BLAKE2b-256 checksum
How to use checksums
78d797f6ede9588ef88a6798c131203c5e813c6e789d8977fb56933ce7eb111d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
fa4f395ab7116c9284f552b06959b51f23a6df39d2a14d260fc7d07062ca9994
BLAKE2b-256 checksum
How to use checksums
a59e6429d0c7400de6888f2c1868610ba3bb78caf12b4bb90dcaa580cd66cc92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-macosx_11_0_x86_64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-macosx_11_0_x86_64.whl
Size 1.2 MB
Tags CPython 3.9 abi3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
7ac83a53c462760951bf0b3c24ab418cf2d06872239253abc9807744c1f6cf77
BLAKE2b-256 checksum
How to use checksums
ddad4b236bb0abd3c96debbfc3fa3cc23f49ddf292b303ff010ff1af917173ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / yeptris-0.6.56.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL yeptris-0.6.56.0-cp39-abi3-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ab6d8cd7eb7c16d54592809d096901298f7b3bcb38ad809098f365bba23d4256
BLAKE2b-256 checksum
How to use checksums
573c917dfe2a5fe8693c96e987a81fb85e0e2dfcc9b51801ca6012985593d8be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for yeptris 0.6.56.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 10 files in this release have been uploaded with provenance metadata.

Select from 10 files

Attestation for yeptris-0.6.56.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page