Packages
vastlint
0.4.21
0.13.4
0.13.3
0.13.2
0.13.0
0.12.0
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.1
0.9.0
0.8.4
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.7
0.3.6
High-performance VAST XML linter for Elixir and Erlang. Validates IAB VAST 2.0–4.3 tags for schema, security, deprecated feature, and CTV issues. Ships precompiled Rustler NIFs for major platforms with a source-build fallback when needed.
Current section
Files
Jump to
Current section
Files
CHANGELOG.md
# Changelog
All notable changes to the `vastlint` Elixir/Erlang package.
This project follows [Semantic Versioning](https://semver.org/).
---
## [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
- 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.ValidationError` structs.
- 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.erl` for rebar3 / plain Erlang callers.