All 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.
[0.2.0] - 2026-07-11
Added
Raptorq.StreamingDecoderfor ergonomically ingesting symbols one by one and automatically decoding when sufficient symbols are collected.Raptorq.encode/3to support automatic zero-padding and chunking of source payloads that are not perfectly divisible by the symbol size.
Changed
Raptorq.encode/2now strictly enforces that the source data length is an exact multiple ofk(to prevent hidden padding bugs). For automatic padding, useencode/3.- Replaced the README performance estimates with accurate, real-world
:timer.tcbenchmarks for the pure Elixir 5-phase sparse solver.
[0.1.0] - 2025-05-16
Added
- Initial release of the RaptorQ codec (RFC 6330).
Raptorq.encode/2to compute intermediate symbols for a block ofKsource symbols.Raptorq.repair/3to generate encoding symbols for arbitrary ISIs.Raptorq.decode/3to recover source data from anyK'distinct symbols.- Dense reference solver (
Raptorq.Solver) and O(L²) 5-phase sparse solver (Raptorq.Solver5). - Precomputed tables in
priv/(SIOP, Deg, OCT_LOG/EXP, V0–V3).