Versioning and support
SemVer policy
Section titled “SemVer policy”distillate follows Semantic Versioning.
- Pre-1.0 (
0.x): the public API may change in a minor release. Breaking changes bump the minor (0.1.x->0.2.0); patches stay backward compatible. Pin a version if you depend on it. - Post-1.0: breaking changes bump the major, additive changes the minor, fixes the patch.
The public API is exactly what the committed API reports in etc/ describe (one per entry point, generated by API Extractor). Any change to an exported signature changes those reports, and CI fails until they are regenerated (pnpm api:report), so no breaking change ships unreviewed. Anything not in a report (internal modules, the shared chunk) is not part of the contract and can change at any time.
Serialized-format compatibility
Section titled “Serialized-format compatibility”toBytes / fromBytes use a versioned binary format. A filter serialized by one release must deserialize in later releases of the same major; a format change that breaks this is treated as a breaking change. See serialization.
Supported runtimes
Section titled “Supported runtimes”distillate targets ES2022, ships zero runtime dependencies, and uses no eval or required WASM, so it runs on every modern JavaScript runtime:
- Node.js 22, 24 (active LTS and current)
- Bun and Deno
- Browsers and Cloudflare / Vercel edge
Every push runs a CI smoke matrix that imports the built package on Node 22/24, Bun, and Deno, so this support is verified, not assumed.
Node.js support policy
Section titled “Node.js support policy”The supported Node range tracks active and current LTS lines. Dropping an end-of-life Node major is not considered a breaking change and may happen in a minor release; it will be called out in the changelog.