Changelog
View SourceAll notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.1.1 - 2024-12-17
Fixed
- Fixed precompiled NIF file extension for macOS targets - now correctly uses
.soinstead of.dylibto match Erlang/OTP conventions - Updated release workflow to generate correct file names for macOS precompiled binaries
0.1.0 - 2024-12-17
Added
- Initial release of ExJsonschema
- High-performance JSON Schema validation using Rust
jsonschemacrate v0.20 - Support for JSON Schema draft-07, draft 2019-09, and draft 2020-12
- Precompiled NIF binaries for major platforms (no Rust toolchain required)
- Comprehensive API with multiple validation functions:
compile/1andcompile!/1- Schema compilationvalidate/2andvalidate!/2- Full validation with detailed errorsvalid?/2- Fast boolean validation checkvalidate_once/2- One-shot compilation and validation
- Enhanced error handling with structured
CompilationErrorandValidationErrortypes - Detailed error messages with JSON path information and validation context
- Memory-safe NIF implementation with proper panic handling
- Comprehensive test suite with 27 tests covering all functionality
- Complete documentation with examples and API reference
- Zero-dependency installation for end users
Technical Details
- Built with Rustler v0.36 for safe Rust-Elixir interop
- Uses
rustler_precompiledv0.8 for precompiled binary distribution - Implements proper NIF resource management for compiled schemas
- Supports multiple architectures: x86_64 and aarch64 for macOS, Linux, and Windows
- Optimized for performance with compile-once, validate-many pattern