# Changelog
## 0.4.3
### Changed
- Replaced `lz4` git ref (`lpgauth/erlang-lz4`) with the new
in-house **`lz4_nif`** hex package (0.1.1). `marina_utils:pack/1'
and `unpack/1' call `lz4_nif:compress/2' and `lz4_nif:uncompress/2'
respectively — same API, same return shape.
- Replaced `murmur` git ref (`lpgauth/murmur`) with the new in-house
**`murmur_nif`** hex package (0.1.0). `marina_token:m3p/1' calls
`murmur_nif:murmur3_cassandra_x64_128/1'. Byte-for-byte compatible
with the legacy fork (verified across inputs with high-byte
sequences where the signed/unsigned variant difference matters);
same token integers, no routing changes.
Both new NIFs follow the same standards as the rest of the
ecosystem: vendored upstream source, raw NIF (no rustler runtime),
dirty CPU scheduler for inputs above 20 KB, `enif_consume_timeslice`
accounting on the inline path, hex publish config, CI matrix
covering OTP 25-28, MIT license for the wrapper plus the upstream
license for the vendored code.
With this swap marina's only remaining non-hex deps are the
plumbing inside its test profile (fprofx git ref).
## 0.4.2
Infrastructure refresh: dependency bumps + docs migration.
### Changed
- Bumped `shackle` from git ref `0.6.20` to hex `0.7.1`. shackle
0.7.1 replaces granderl with knot (in-house C NIF), so marina's
transitive granderl dependency is gone — fixing the OTP 27+ build
break that affected anything depending on `granderl 0.1.5` from
hex.pm.
- Bumped `foil` from git ref `0.1.3` to hex `0.1.4` (tightened
`error/0` type, internal DRY refactor; behaviour unchanged).
- `fprofx` test-profile dep moved from the `ransomr/fprofx` fork to
`lpgauth/fprofx` (`otp_19` branch), matching the rest of the
ecosystem.
- Documentation migrated from `edown` to `rebar3_ex_doc`.
### Removed
- Direct `granderl` dep entry (was unused by marina source — it sat
in the dep tree only because the old shackle ref pulled it in).