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.35.2

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.35.2
File Size Uploaded Provenance
yeptris-0.6.35.2.tar.gz 345.9 kB With provenance Details

Built distributions (wheels)

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

Total release size: 9.5 MB

Release files / yeptris-0.6.35.2.tar.gz

Download URL yeptris-0.6.35.2.tar.gz
Size 345.9 kB
Tags Source
SHA-256 checksum
How to use checksums
2dd54777c629fab6fc58139ebfd8408cbb349ed17add36d6b9337ece94a23727
BLAKE2b-256 checksum
How to use checksums
035c78775669f45089f22bacfd152826d11f103361eff0adad7726f2adf25e86
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-py3-none-any.whl
Size 23.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c94a6f81dff4dee76157250ae966ad8d7a8135cd1caf495b5736fb21d5f86a9
BLAKE2b-256 checksum
How to use checksums
490cb70e09810760632e707c46b8087ff5acce81e49ddba65f4407f803d30b85
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-win_arm64.whl
Size 988.8 kB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
f35e5260a04614f30eac13914a2fcc61a5e16f006731d568b6296d6a24456d58
BLAKE2b-256 checksum
How to use checksums
871fe752671e2b8e28f97eecbbf2eed3de9d2fdd053f22a67f4728026ac15096
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-win_amd64.whl
Size 997.5 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
4eea59160c6ab75ad378bd28040a6687d0381e5c7cd9c17f41eed89ef3c67bf4
BLAKE2b-256 checksum
How to use checksums
903516e63ded89b7eb4d4c12bae7218aeb24edb4cf9b1cb68d213d5e66aa5ba3
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-musllinux_1_2_x86_64.whl
Size 1.3 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
4790f8314116330df2067138cceb1b067fe875a8b9b9e01ca742c4f3c09f7cd4
BLAKE2b-256 checksum
How to use checksums
4b71bcaaf95e47e523df3ccfb83ef696535689229eae833947daafc1267660d4
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-musllinux_1_2_aarch64.whl
Size 1.4 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
bc26650ecc18e3969168d62d49b04530fb1e162a7fd870e41e7a0ae8b4d9e176
BLAKE2b-256 checksum
How to use checksums
46684ed480983d956737dd69a48a3dab01387bbdd7ca6f3e1f524be61d0b6024
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 1.1 MB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
123796d447590dc07d57e3d3786d758108dd3898a1eb401b33755b79b5ef0d6f
BLAKE2b-256 checksum
How to use checksums
7532f5583e50189aaba4f5a19e6825c4f74ee167028b889530aa27b89e14e2fc
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 1.1 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
ee30b59fb978632b5048e104339e29201166b5d793dad6c7fb0b86a2fc533e0c
BLAKE2b-256 checksum
How to use checksums
b998f097c93dcc07f298560788243e067d76f44e2c9984221dbf009a999a7573
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-macosx_11_0_x86_64.whl
Size 1.1 MB
Tags CPython 3.9 abi3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
f6c19ac84450486c10a37c392af70f604a03c9c8323953f0a34747d79b6cf269
BLAKE2b-256 checksum
How to use checksums
81fc6fc82d0a6836b8ed024269d749e47e795d75e46746dcc33952a8a6b28694
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 Oct 21, 2026.

Transparency log

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

Download URL yeptris-0.6.35.2-cp39-abi3-macosx_11_0_arm64.whl
Size 1.0 MB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e2fb185d8435e3266f87329d4de43d862c90143f9bd00792ecd29253cc82a574
BLAKE2b-256 checksum
How to use checksums
b12c788c169720c287441fd33d6dc2b5e009dffd41f9c0e44d62e778b411e723
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 Oct 21, 2026.

Transparency log

Security for yeptris 0.6.35.2

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.35.2.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 Oct 21, 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.

Release history Release notifications | RSS feed

This release

0.6.35.2 This release

10 release files Full provenance

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