android-abx 0.4.0

Android Binary XML (ABX) parser using winnow
Documentation
# Changelog

All notable changes to this project are documented in this file, generated
automatically from [Conventional Commits](https://www.conventionalcommits.org/)
history by [git-cliff](https://git-cliff.org/).

## [0.2.1] - 2026-07-23

### Features

- *(decode)* Add AbxParser::write_xml for parity with AbxStreamParser


### Performance

- *(decode)* Stop AbxStreamParser from compacting on every event


### Documentation

- *(changelog)* Update CHANGELOG.md for v0.2.0

- *(readme)* Refresh Benchmarks section after streaming decode fix


### Miscellaneous Tasks

- *(release)* Bump version to 0.2.1


## [0.2.0] - 2026-07-23

### Bug Fixes

- Return Result<Option<T>> from find_attribute/attributes_of


### Refactor

- *(encode)* Dedupe write_utf into write_bytes_blob


### Documentation

- *(changelog)* Update CHANGELOG.md for v0.1.1


### Testing

- Drop redundant test_ prefix in parser_tests.rs


### Miscellaneous Tasks

- Add [lints] table to Cargo.toml

- *(release)* Bump version to 0.2.0


## [0.1.1] - 2026-07-23

### Features

- *(release)* Auto-generate CHANGELOG.md via git-cliff on each tag


### Styling

- Remove section-divider banner comments


### CI

- Add GitHub Actions workflow to test every commit and PR

- Harden CI workflow, add Dependabot config and status badges


### Miscellaneous Tasks

- *(deps)* Update serde to 1.0.229

- *(deps)* Update criterion 0.5 -> 0.8

- *(deps)* Update faster-hex 0.9 -> 0.10

- *(deps)* Update base64 0.22 -> 0.23

- *(deps)* Update thiserror 1 -> 2

- *(deps)* Update nom 7 -> 8

- *(release)* Bump version to 0.1.1


## [0.1.0] - 2026-07-23

### Features

- *(abx)* Add base implementation of the abx parser in stream and vec

- *(serde)* Add serde Deserialize support for ABX elements

- *(encode)* Add AbxWriter and events_to_abx low-level ABX encoder

- *(encode)* Add xml_to_abx XML-to-ABX encoding behind xml feature

- *(writer)* Reject too-long strings/byte blobs, matching AOSP's u16 length cap; stop tracking AI/editor config


### Bug Fixes

- *(stream)* Use nom streaming parsers for correct partial-read handling

- *(core)* Correct TYPE_* data-type nibble constants to match real AOSP

- *(event)* Render negative TYPE_INT_HEX/TYPE_LONG_HEX like real AOSP


### Performance

- *(bench)* Add criterion benchmarks for parsing and deserialization

- *(bench)* Add benchmarks for AbxWriter and xml_to_abx


### Refactor

- *(tests)* Extract ABX wire-format builders into shared module

- *(src)* Split decode/serde into submodules, extract wire.rs and event.rs


### Documentation

- *(lib)* Document ABX vs AXML as unrelated formats

- Add project guide and README

- Document encoder, AOSP verification, and fixture provenance

- Update README title to Android-ABX

- Document pre-commit setup in README


### Testing

- Add real xml2abx-encoded fixtures and AOSP regression tests

- Add reproducible AOSP verification harness

- Regenerate ABX fixtures from real AOSP, add byte-level oracle tests


### Styling

- Apply cargo fmt


### CI

- Add GitHub Actions workflow to publish to crates.io on tag push

- Create a GitHub release after a successful crates.io publish


### Miscellaneous Tasks

- Prepare crate for crates.io publication as android-abx

- Add repository/homepage/documentation to Cargo.toml

- Add pre-commit hooks for rustfmt, clippy, and Conventional Commits