Skip to content

Home

e-serde

Fast, type-safe structured-data loading for Python. Native Rust codecs decode any popular config format into native objects — or straight into frozen msgspec models. Two verbs, sync and async, one wheel.

Rust-fast

JSON via msgspec (C); YAML, TOML, JSONC, INI via Rust. GIL released during decode.

Type-safe

Pass type= and the tree is validated into a Struct, dataclass or TypedDict by msgspec.

json-semantics

loads/dumps/load/dump plus a-prefixed async twins. Drop-in feel, no surprises.

Seven formats

JSON · JSONC · YAML · TOML · INI · CSV · TSV. Format autodetected from the path extension.

Install

uv add e-serde          # or: pip install e-serde

First load

import eserde
from pathlib import Path

eserde.loads(b'{"host": "0.0.0.0", "port": 8080}', format=eserde.Format.JSON)
# {'host': '0.0.0.0', 'port': 8080}

eserde.loads(Path("config.toml"))          # format inferred from .toml

Get started →