Core algorithms for fountain code encoding and decoding.
- Encoder / Decoder: Generic fountain code encoder and decoder that work with any code scheme implementing the
CodeSchemetrait. - Traits:
CodeSchemeandDataOperator— implement these to define custom fountain codes and data backends. - BinaryMatrix: Packed GF(2) matrix utilities used by the solver stack.
The engine is data-free by design. Instead of operating on data directly, the encoder and decoder emit a sequence of Operation values that a DataOperator executes on actual data vectors. This separation enables:
- In-memory operation (
VecDataOperaterinfountain_utility) - I/O logging (
IoDataOperatorinfountain_utility) - Network streaming or any custom backend
Encoding and decoding use SystemSolver: belief propagation, inactivation, and Gaussian elimination over a sparse master-system representation. This is the only solver in the published 2.x crate.
Profiling / timing introspection and staging solver experiments are monorepo development facilities and are not part of this published package.
[dependencies]
fountain_engine = "2.0.1"This crate is dual-licensed:
- AGPL-3.0 — Free for open-source use. See LICENSE-AGPL.
- Commercial — For proprietary use without AGPL obligations. See LICENSE-COMMERCIAL.
Copyright (c) 2025 Shenghao Yang. All rights reserved.