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.

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.

Release files for yeptris 0.6.19.1

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.19.1
File Size Uploaded
yeptris-0.6.19.1.tar.gz 268.9 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for yeptris 0.6.19.1
File
yeptris-0.6.19.1-py3-none-any.whl Python 3 none any Details
yeptris-0.6.19.1-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details
yeptris-0.6.19.1-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
yeptris-0.6.19.1-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
yeptris-0.6.19.1-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details
yeptris-0.6.19.1-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.19.1-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
yeptris-0.6.19.1-cp39-abi3-macosx_11_0_x86_64.whl CPython 3.9 abi3 macOS 11.0+ x86-64 Details
yeptris-0.6.19.1-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details

Total release size: 7.3 MB

Release files / yeptris-0.6.19.1.tar.gz

Download URL yeptris-0.6.19.1.tar.gz
Size 268.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e4748afd61241781ca9cc9782953cdb5c10cfe7ff36bc03314a0859cc5d6742c
BLAKE2b-256 checksum
How to use checksums
f0d4799b8b4702ed90e15d7c528a54605753f45ea33a69e52cdb249eceda264c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c859e11dc3622b0d904b87ca2f9208ac33a1eac40b1f87c7b0155c73cd3a6855
BLAKE2b-256 checksum
How to use checksums
c23da898cf0b828c6b4c33d2686c3778835ea6bc403d04a3e30d0bd65adde0a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-win_arm64.whl
Size 767.6 kB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
0310a539eb562d459afd9c2ba68b31b13296ffbdb3b92758b5b21272dd6da96e
BLAKE2b-256 checksum
How to use checksums
b79d7b7a3a05ddc0924a2a2dece16a0261bca4df66c1eb861f81c25535965e58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-win_amd64.whl
Size 784.7 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
00c7b1fb226fc27a4c905868d2090a9062f7e376593c8e3ef41758ebc02d2b45
BLAKE2b-256 checksum
How to use checksums
6d6bac2dbf81732f37d2d6a367539e4709f519d9a7f8e7c52c3151bd0b603c83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-musllinux_1_2_x86_64.whl
Size 1.0 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
1d2f4c5a4fbce85e51bc6cc943a895574d568439f1bc0577789ad1c036f4c3b7
BLAKE2b-256 checksum
How to use checksums
5a3f09a6930cf9eee2a3d86f9df2e64ed3a432d1b4ef75e70c2616a878d355b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-musllinux_1_2_aarch64.whl
Size 1.1 MB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
e2d260ae1d804b13a8ef6fdc001be7301dbfdb39bbed848ed6baa4df376590fb
BLAKE2b-256 checksum
How to use checksums
0d809fff5bd7a5a3b7a2e1c8d54a04760caedccaab54497c1923ac40a1dd0e9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 864.5 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
227f367ad4dd661ce9cf8b711fd149adfac65b63efc60fd07b5d1d584488b263
BLAKE2b-256 checksum
How to use checksums
7c386bb84548bf9cd03d2fc4b404cb0352d66fe0bf4e82afb4beff14f01d37e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 861.8 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
dd686849950286cc9622707f157042830ecd264309ea8bc851d6a58a1607c076
BLAKE2b-256 checksum
How to use checksums
45d937224bd0a8b84d8794c8c45ee06cea6fa69874b780644747b9adbbacef57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-macosx_11_0_x86_64.whl
Size 821.5 kB
Tags CPython 3.9 abi3 macOS 11.0+ x86-64
SHA-256 checksum
How to use checksums
73f64e3cfb1e1cb3e4ad4a374b175d93b2c4601277e474814e863401591f5fce
BLAKE2b-256 checksum
How to use checksums
ac6374b7447861b03d91b3628667bcb0f9b2f509ecafbd2c5b9b9b23bb1057cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

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

Download URL yeptris-0.6.19.1-cp39-abi3-macosx_11_0_arm64.whl
Size 806.0 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
42fbca3dbce2970e36d4aeee369a17f1a20270243d24727a068a306f33d6c713
BLAKE2b-256 checksum
How to use checksums
c6c5a4cf0a12970cdaecb7da978797263c0fe9d5f2d0112b5647552f4ca3866a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Sep 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.19.1 This release

10 release files

0.1.0

2 release files

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