ELANG¶
ELANG is a portable, deterministic definition and packaging format for
constructed languages, together with its Rust reference tooling. A single
.elang file carries a language's definition in a compact binary container that
is content-addressed, reproducible byte-for-byte, and safe to open even when it
comes from an untrusted source.
This site documents the ELANG format and the Rust reference
implementation (elang-rs): the binary container, the descriptor and phoneme
grammars, the integrity and Unicode/IPA rules, the reader/validator pipeline,
and the command-line tooling.
Scope of this release
ELANG v0.1.0 defines phonemes only. It does not define lexicons, phonotactics, morphology, syntax, semantics, prosody, audio, GUI, dependency management, repository ownership, or publisher signatures. A verified package digest proves integrity, not authorship.
What is in a package¶
Every compliant phoneme-only package contains exactly these logical resources:
Header/format.version
mimetype
package.epf
META-INF/integrity.kdl
Linguistics/phonemes.eld # path is configurable via the EPF manifest
Header/format.version— the container format version string.mimetype— the exact media typeapplication/vnd.elang.package.epf— a KDL 2.0 descriptor naming the language and its resources.META-INF/integrity.kdl— a SHA-256 manifest over the uncompressed bytes of every other resource..eld— the phoneme inventory: consonants, vowels, custom groups, romanizations, allophones, and conditional realization rules.
Why ELANG¶
- Deterministic. A canonical writer profile produces byte-identical output across runs and platforms, so packages are reproducible and content-addressable.
- Safe by construction. Every byte in a package is treated as untrusted. The reader uses bounded, streaming, checked-arithmetic code with hard limits on decompression, nesting, and allocation.
- Explicit, not clever. Ambiguous syntax is rejected rather than repaired. Nothing is silently normalized. Validation either passes every stage or fails with a precise, stable error.
- Pinned and auditable. Unicode 18.0.0, the IPA 2026 chart, and libzstd 1.5.7 are pinned so behavior does not drift with the host environment.
Start here¶
-
Getting started Install the tooling, build a package, and run the validator.
-
Concepts The format's building blocks and the vocabulary used throughout.
-
Format reference The binary container, descriptor, phoneme grammar, and canonical rules.
-
CLI reference
inspect,verify,validate,pack,unpack, and more. -
Security model The threat model and the defenses that back it.
-
Versioning The independent version domains and what each one governs.
Project status¶
ELANG is pre-release, tracking v0.1.0. The locked format rules on this site are stable; a small number of normative data artifacts (for example, the final frozen IPA inventory and release golden hashes) are tracked as open items and are release blockers. See Specification status for the current picture.