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).
## [0.2.0] - 2026-01-03
### Changed
- Renamed application from `erlang_bson` to `ebson`
- Renamed `bson_codec` module to `ebson`
- Renamed `bson_iter` module to `ebson_iter`
### Added
- GitHub Actions CI for OTP 25, 26, 27
### Fixed
- Binary copy test compatibility across OTP versions
## [0.1.0] - 2026-01-03
### Added
- `ebson_iter` module for zero-copy BSON binary traversal
- `new/1` - Create iterator from BSON binary with validation
- `next/1` - Iterate elements without decoding values
- `peek/2` - Find key at top level without iteration state
- `find_path/2` - Navigate nested documents via path
- `decode_value/2` - Decode value refs to Erlang terms
- `ebson` module for map encode/decode
- `encode_map/1` - Encode Erlang map to BSON binary
- `decode_map/1` - Decode BSON binary to Erlang map
- `bson_types.hrl` header with BSON type constants
- Supported BSON types:
- double (float)
- string (binary)
- document (map)
- array (list)
- binary with subtypes
- objectid
- boolean
- datetime
- null
- int32
- int64
- timestamp
- decimal128
- regex
- javascript
- minkey/maxkey
- Memory safety via `binary:copy/1` to prevent retention of large source binaries
- Comprehensive test suite (101 tests)