edn-format
EDN format reader and writer in Python
What it is and what it does
edn_format implements the EDN (Extensible Data Notation) specification in Python, enabling bidirectional conversion between EDN text and Python objects. EDN is a data format originating from the Clojure ecosystem that supports rich types like sets, keywords, and symbols alongside standard primitives. The library handles all EDN features, including custom tagged elements, and aims for round-trip fidelity: objects serialized and deserialized should equal their originals.
The package depends on ply (for parsing), pyRFC3339 (for timestamp handling), and pytz (for timezone support). It returns immutable collections by design, following EDN's principle that deserialized values should be treated as immutable to ensure distinct object identities across reads.
Use it for:
- Exchange data with Clojure or other JVM-based systems that use EDN as a native format
- Parse configuration files or data files written in EDN notation
- Serialize Python objects to EDN for interoperability with Clojure-based tools or services
- Work with custom EDN tagged elements to represent domain-specific types
- Load multiple EDN values sequentially from a single stream using loads_all
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes EDN (Extensible Data Notation) format in Python, converting between EDN text and Python objects with support for all EDN features including custom tagged elements.
Yes. Active maintenance, low install friction, permissive license, and no known vulnerabilities make this a safe choice for projects needing EDN support. The library is stable (Production/Stable status) and has been maintained since 2013. Install it if you need to read or write EDN format; skip it if your project has no EDN interoperability requirement.
Install
edn-format on PyPI
pip
pip install edn-formatuv
uv add edn-formatpoetry
poetry add edn-formatInstalling edn-format
Before you install
Low friction: pure Python wheel with three lightweight runtime dependencies (ply, pyRFC3339, pytz). Active maintenance with a recent release 24 days ago.
License in practice
Apache 2.0 permissive license allows commercial and private use with minimal restrictions—suitable for most projects.
Quickstart
pip install edn_format
import edn_format
edn_format.dumps({1, 2, 3}) # '#{1 2 3}'
edn_format.loads("[1 true nil]") # [1, True, None]
Verify before relying
- Whether Python 2 support is still functional or maintained despite the unspecified python_support field
- Performance characteristics when handling large or deeply nested EDN structures
Package facts
| License | Apache 2.0 (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — ply, pyRFC3339, pytz |
| Maintenance | actively maintained — 24 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 907,988/month — #4,754 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: edn_format-0.8.0-py3-none-any.whl
Tags
More Software Development packages
Provides backported and experimental type hints…
permissive · top 100 on PyPI
numpyNumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
distlibDistlib provides low-level packaging utilities…
permissive · top 1,000 on PyPI
ndjsonProvides a familiar JSON Lines (ndjson) parser…
copyleft · top 5,000 on PyPI
tomlrtReads and writes TOML files while preserving…
permissive · top 15,000 on PyPI
pyorcPyORC reads and writes Apache ORC files using…
permissive · top 15,000 on PyPI
backports.csvProvides Python 3's csv module API for Python…
unclear · top 15,000 on PyPI
rosettasciioRosettaSciIO reads and writes scientific data…
copyleft · top 15,000 on PyPI
edfioedfio reads and writes EDF, EDF+C, BDF, and…
permissive · top 15,000 on PyPI
untangleConverts XML documents into Python objects with…
permissive · top 15,000 on PyPI
toon-formatEncodes and decodes data structures using TOON…
permissive · top 15,000 on PyPI
kaldiioKaldiio reads and writes Kaldi archive (ark)…
unclear · top 5,000 on PyPI
dicttoxmlConverts Python dictionaries and other native…
copyleft · top 5,000 on PyPI