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.VastlintNif to vastlint_nif. This is a breaking change if you were calling VastlintNif functions directly (which was undocumented and unsupported). The public Vastlint API is unaffected.
    • rustler::init! in the Rust crate now registers the NIF as vastlint_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 via erlang:load_nif/2 at module init. Erlang/rebar3 apps no longer need the Elixir runtime to call the NIF directly.
  • rebar.config for rebar3 / pure Erlang project setup.
  • native/vastlint_nif symlink to vastlint/crates/vastlint-nif for VASTLINT_BUILD=true force-build support from the Erlang package directory.
  • Added aarch64-unknown-linux-musl and x86_64-unknown-linux-musl precompiled targets (Alpine Linux / static builds).

Changed

  • Version bumped to 0.3.3 to match vastlint_nif Rust crate (Cargo.toml).
  • src/vastlint.erl: now calls vastlint_nif:validate/1 and vastlint_nif:validate_with_opts/4 directly instead of the Elixir module.
  • lib/vastlint.ex: updated to call :vastlint_nif (was VastlintNif).

[0.3.0] - 2026-03-10

Added