fountain_scheme 2.0.0

Configurable fountain code schemes built on fountain_engine
Documentation

fountain_scheme

Configurable fountain code schemes built on fountain_engine.

Included Schemes

  • 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.

Quick Start

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);

Dependency

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"

License

MIT License. See LICENSE-MIT.

Copyright (c) 2025 Shenghao Yang. All rights reserved.