All notable changes to the vastlint Elixir/Erlang package.
This project follows Semantic Versioning.
[0.3.3] - 2026-04-24
Breaking
- NIF module atom changed from
Elixir.VastlintNiftovastlint_nif. This is a breaking change if you were callingVastlintNiffunctions directly (which was undocumented and unsupported). The publicVastlintAPI is unaffected.rustler::init!in the Rust crate now registers the NIF asvastlint_nif- The Elixir NIF loader is now
defmodule :vastlint_nif(Erlang-style atom) - The checksum file is now
checksum-vastlint_nif.exs
Added
- Pure Erlang NIF loader (
src/vastlint_nif.erl): loads the shared library viaerlang:load_nif/2at module init. Erlang/rebar3 apps no longer need the Elixir runtime to call the NIF directly. rebar.configfor rebar3 / pure Erlang project setup.native/vastlint_nifsymlink tovastlint/crates/vastlint-nifforVASTLINT_BUILD=trueforce-build support from the Erlang package directory.- Added
aarch64-unknown-linux-muslandx86_64-unknown-linux-muslprecompiled targets (Alpine Linux / static builds).
Changed
- Version bumped to
0.3.3to matchvastlint_nifRust crate (Cargo.toml). src/vastlint.erl: now callsvastlint_nif:validate/1andvastlint_nif:validate_with_opts/4directly instead of the Elixir module.lib/vastlint.ex: updated to call:vastlint_nif(wasVastlintNif).
[0.3.0] - 2026-03-10
Added
- Initial public release.
Vastlint.validate/1,Vastlint.validate/2,Vastlint.validate!/1,Vastlint.validate!/2,Vastlint.version/0.Vastlint.Result,Vastlint.Issue,Vastlint.Summary,Vastlint.ValidationErrorstructs.- Precompiled NIFs for macOS (arm64, x86_64) and Linux (arm64, x86_64, glibc).
- DirtyCpu NIF scheduling - never blocks BEAM schedulers.
- Native Erlang map output - no JSON serialisation overhead.
- Erlang wrapper module
src/vastlint.erlfor rebar3 / plain Erlang callers.