# 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.1.4] - 2026-05-13
### Added
- Precompiled NIF artifacts for `aarch64-apple-darwin`,
`x86_64-apple-darwin`, `aarch64-unknown-linux-gnu`,
`x86_64-unknown-linux-gnu`, and `x86_64-unknown-freebsd`. Consumers
on these targets no longer need a Rust toolchain on `mix deps.get`.
### Fixed
- Set a `User-Agent` header on NIF downloads. sr.ht sits behind the
`go-away` anti-scraper proxy, which 403s any request with an empty
UA — Erlang's `:httpc` (used by `rustler_precompiled`) sends none
by default, so 0.1.2/0.1.3 consumers would have hit the proxy.
## [0.1.0] - 2026-05-13
### Added
- Initial public release: Olm + Megolm primitives for Matrix
end-to-end encryption, built on Element's
[vodozemac](https://github.com/matrix-org/vodozemac) (Rust) via
Rustler. Surface covers account / one-time-keys, inbound and
outbound Megolm group sessions, Olm pairwise sessions, raw Ed25519
+ Curve25519 helpers, and SAS short-authentication-string
verification.
### Known limitations
- **Source-only release.** Consumers need a Rust toolchain
(`rustup install stable`) on `mix deps.get`; the NIF compiles
from source via Rustler. Precompiled binaries for the four major
macOS + Linux targets are scheduled for 0.1.1.
- Pickle bytes are wrapped with vodozemac's default zero-key — no
confidentiality at rest. Callers must apply their own at-rest
encryption until a `pickle_key` parameter lands in a later release.