Packages

Compile Elixir binary pattern matching to classic BPF bytecode.

Current section

Files

Jump to
bpf CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
<!-- %% CHANGELOG_ENTRIES %% -->
## 0.2.0 - 2026-01-18
### Added
- Constant folding for size spec expressions (e.g., `<<x::4*8>>`, `<<x::16+16>>`, `<<x::div(32, 4)>>`)
## 0.1.2 - 2026-01-07
### Added
- Support for bare underscore patterns (`fn _ -> true end`) to accept or reject all packets
- Add expublish for release management
### Fixed
- Remove unreachable final reject instruction when last clause cannot fail
### Changed
- Remove publish-to-hex step from CI (publishing done locally via expublish)
## 0.1.1 - 2025-01-05
### Added
- Initial public release
- Compile Elixir binary pattern matching to classic BPF bytecode
- Support for literals, bindings, and skip segments in patterns
- Support for size modifiers (big/little endian, signed/unsigned)
- Guard expressions with comparisons, logical operators, and arithmetic
- Bitwise operations (`band`, `bor`, `bxor`, `bnot`)
- `byte_size/1` support for packet length checks
- Multi-clause function support
- BPF interpreter for testing
- BPF assembler for generating raw bytecode