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.
[1.0.1] - 2026-07-18
Fixed
searchcapskand allocates its result buffers inside the try, so an oversizedkreturns an error instead of aborting the VM across the C ABI.on_upgradere-opens the index resource type; an unknown metric atom is rejected instead of defaulting to L2;closeruns on a dirty scheduler.
[1.0.0] - 2026-07-10
Coordinated umbrella release. See the umbrella CHANGELOG.
0.2.1 - 2026-03-07
Changed
- CI: Use Debian-based Erlang containers for GitHub Actions
- CI: Add xref, dialyzer, eunit, and common tests as separate steps
- Configure xref checks for library usage
0.2.0 - 2026-01-04
Added
- Deletion support:
remove_ids/2- Remove vectors by ID (supports Flat, IVF indexes; not HNSW)add_with_ids/3- Add vectors with explicit IDs (supports IVF indexes)
0.1.0 - 2026-01-04
Added
- Initial release of barrel_faiss
- Core index operations:
new/1,2- Create flat indexes with L2 or inner product metricindex_factory/2,3- Create indexes using FAISS factory stringsclose/1- Release index resources
- Index properties:
dimension/1- Get vector dimensionis_trained/1- Check training statusntotal/1- Get vector count
- Vector operations:
add/2- Add vectors to indexsearch/3- K-nearest neighbor searchtrain/2- Train IVF indexes
- Serialization:
serialize/1- Serialize index to binarydeserialize/1- Restore index from binary
- File I/O:
write_index/2- Save index to fileread_index/1- Load index from file
- Supported index types via factory strings:
Flat- Exact brute-force searchHNSW- Hierarchical Navigable Small World graphsIVF- Inverted file indexesPQ- Product quantizationSQ- Scalar quantization
- Dirty scheduler support:
- CPU-bound operations on dirty CPU schedulers
- File I/O on dirty IO schedulers
- Platform support:
- Linux (amd64, arm64)
- macOS (Homebrew, MacPorts)
- FreeBSD
- Documentation:
- Getting started guide
- K/V database integration guide
- API reference via ex_doc