NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2390 most downloaded on PyPI
A high-performance TOON (Token Oriented Object Notation) parser and serializer for Python, implemented in Rust.
Last release 5 days ago
29 Sep 2026
Release timing varies
gaps range from 2 weeks to 4 months
Most releases are documented
notes for 12 of 16 stable releases
Nothing withdrawn
no release was ever pulled
11 months old
16 releases · first in 2025
One column per month.
perf(serialization): walk Python objects without per-cell allocations by @simkimsia in #22
Full Changelog: 0.8.0...0.9.0
feat!: harden encoder and decoder, modernize tooling, rewrite docs by @alesanfra in #19
Full Changelog: 0.7.0...0.8.0
# comment lines, removed in a lexical pre-pass before every other
rule, so a comment never ends a scope or counts as a row.orders[2]{id,customer{name,country},total}:), encoded and decoded at
any depth.servers[2:]{host,port}:), including the keyless root form and the
header-on-hyphen-line form inside list items.key: [] and []; the legacy
key[0]: and [0]: are still decoded..5, 1., +5, 05,
Infinity, NaN, 0x10, and 1_000 decode as strings.\uXXXX escapes in quoted strings and keys, emitted for control
characters and rejected for lone surrogates.[N] truncate a scope.json module.toons.pyi declares __version__.toons.__toon_spec__ reports the implemented TOON specification version
("4.1"), as recommended by spec Section 13.indent option of loads, load, dumps, and dump is now spelled
indent_size, matching the spec's indentSize. indent stays accepted as
a deprecated alias; passing both with different values raises ValueError.
to_json keeps indent for the JSON output, as before, and gains
indent_size for the TOON input.key: [].abi3-py37 target, so wheels are tagged cp38-abi3. Python 3.7 users stay
on 0.7.0.TypeError instead of being encoded as
null, and non-string object keys raise TypeError instead of crashing
the interpreter.ValueError instead of being ignored:
delimiter must be ",", "\t", or "|"; the encoder indent_size
must be at least 2 and the decoder indent_size at least 1.strict=False.#, when they are numeric-like
with a leading +, and no longer merely because they start or end with
non-ASCII whitespace.uv sync
against pyproject.toml and uv.lock, so the exported
docs/requirements.txt is gone.pypi environment, so a tagged release
shows up under the repository's Deployments and can be gated there, and it
authenticates with trusted publishing instead of a stored API token.key_folding and flatten_depth encoder options and the
expand_paths decoder option. Key folding and path expansion were removed
from the specification in v4.0; dotted keys are single literal keys. Data
encoded with key_folding="safe" must be re-hydrated with a v3 decoder
using expand_paths="safe" before re-encoding.ValueError. Nesting
deeper than 1000 containers raises ValueError for the same reason.dumps(..., delimiter="") panicked; a panic also escaped for non-string
object keys.ToonDecodeError. The same
bound applies to the encoder's form detection, which crashed on a deeply
nested uniform column.str that holds an unpaired surrogate raised a misleading
TypeError about the type; it now raises ValueError naming the cause.let chains, which
need a newer compiler than the Rust toolchain pinned in
.readthedocs.yaml. The pin now tracks latest, and rust-version in
Cargo.toml states the 1.88 the crate actually needs.feat: add to_json convenience API by @micheal000010000-hub in #15
Full Changelog: 0.6.0...0.7.0
to_json() convenience API.fix(deserialization): parse quoted strings with colons as primitives in expanded arrays by @alesanfra in #14
Full Changelog: 0.5.4...0.6.0
ToonDecodeError with .line and .source attributes.Removed dead code Improved README Full Changelog : 0.5.3...0.5.4
Full Changelog: 0.5.3...0.5.4
fix(deserialization): Fix deserialization of special unicode characters by @medvekoma in #7
Full Changelog: 0.5.2...0.5.3
fix: serialize datetimes by @alesanfra in #5
chore: add type stubs by @alesanfra in #4
feat: compliance with TOON v3.0, added official test fixtures by @alesanfra in #1
Full Changelog: 0.4.0...0.5.0
Implemented TOON v3.0 specification
Implemented TOON v3.0 specification
100% coverage of the TOON spec v2.0
Nothing published for this version
Rewrite parser and serializer from scratch, added docs
Rewrite parser and serializer from scratch, added docs
Full Changelog: https://github.com/alesanfra/toons/compare/0.1.2...0.2.0
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →