skillfed

edn-format

EDN format reader and writer in Python

edn-format v0.8.0 908.0K downloads/30d#4,754 on PyPI148
Permissive license Apache 2.0 Active released

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-format

uv

uv add edn-format

poetry

poetry add edn-format

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 3Topic :: Software Development

Tags

EDN format parserClojure data format PythonEDN reader writerserialize EDN dataparse EDN notation
data-formatserializationclojure-interop

More Software Development packages