Configurable fountain code schemes built on fountain_engine.
- LT Code: Pure Luby Transform codes with ideal soliton and robust soliton degree distributions.
- LDPC-LT Code: LT codes with LDPC precode for improved decoding performance.
- HDPC-LT Code: LT codes with HDPC (High-Density Parity Check) precode.
- Systematic Codes: Systematic variants of LDPC-LT and HDPC codes, where source symbols appear unmodified in the output.
Use the code scheme types (each implements fountain_engine::traits::CodeScheme). Pass any of them to fountain_engine::Encoder and fountain_engine::Decoder.
use fountain_scheme::validation::pseudo_rand::XorShift64;
use fountain_scheme::{BinaryHDPCLTCode, HDPCLTCode, LDPCLTCode, RandomLTCode};
let k = 100usize;
let rng = XorShift64::new(1);
let _lt = RandomLTCode::new_from_robust_soliton(k, rng.clone());
let _ldpc_lt = LDPCLTCode::new_with_ideal_soliton(k, rng.clone());
let _hdpc_lt = HDPCLTCode::new_with_ideal_soliton(k, rng.clone());
let mut sys = HDPCLTCode::new_with_ideal_soliton(k, rng.clone());
sys.as_systematic();
let _binary_hdpc = BinaryHDPCLTCode::new_with_ideal_soliton(k, rng);Requires fountain_engine 2.0 and fountain_utility 2.0:
[dependencies]
fountain_scheme = "2.0.0"
fountain_engine = "2.0.0"
fountain_utility = "2.0.0"MIT License. See LICENSE-MIT.
Copyright (c) 2025 Shenghao Yang. All rights reserved.