Maintainer notes for the Fountain library project static site. The public landing page is index.html (mirrors the content visitors see on GitHub Pages).
Rust crates for fountain codes: a reusable engine, schemes (LT and Raptor-style), utilities for testing and benchmarking, optional high-performance operators, and rateless UDP file transfer (fountain_transfer).
Live site: https://shhyang.github.io/fountain_docs/
- Add
fountain_engineplus one scheme crate (fountain_scheme,fountain_raptor_q, orfountain_raptor_10) to yourCargo.toml. - Optional: add experimental
fountain_operatorsfrom GitHub (requiresfountain_engine1.3+). - Try
fountain_transferfor rateless UDP file transfer (quick start). - Read
docs/doc-engine.pdfanddocs/doc-scheme.pdf(paths matchindex.html).
| Crate | Role | docs.rs | Crates.io | GitHub |
|---|---|---|---|---|
| fountain_engine | Core fountain code engine | docs.rs | crates.io | shhyang/fountain_engine |
| fountain_utility | In-memory operators, padding wrappers, testing utilities | docs.rs | crates.io | shhyang/fountain_utility |
| fountain_scheme | Configurable schemes (LT, LDPC-LT, HDPC-LT, systematic) on fountain_engine |
docs.rs | crates.io | shhyang/fountain_scheme |
| fountain_raptor_q | RFC 6330 RaptorQ scheme crate | docs.rs | crates.io | wutongabc/fountain_raptor_q |
| fountain_raptor_10 | RFC 5053 Raptor-10 scheme crate | docs.rs | crates.io | wutongabc/fountain_raptor_10 |
| Crate | Role | Distribution | GitHub |
|---|---|---|---|
| fountain_operators | Experimental. High-performance DataOperator backends (SlabDataOperator, SimdDataOperator, GF(256) kernels, replay/testing). API may change. Requires fountain_engine 1.3+. |
Git dependency (not on Crates.io) | shhyang/fountain_operators |
| fountain_transfer | Rateless UDP file transfer: fountain_transfer_core library (dual-codec facade, RFC packet codec) + fountain CLI (send / recv). MIT; links AGPL fountain_engine in-process. |
GitHub workspace (not on Crates.io yet) | shhyang/fountain_transfer |
Example dependency (from the operators README):
fountain_engine = "1.3"
fountain_operators = { git = "https://github.com/shhyang/fountain_operators", features = ["simd"] }Raptor performance examples (raptor_q_performance, raptor_10_performance) use fountain_operators as an optional dev-dependency with the same Git URL. See the operators README for run commands.
Clone fountain_transfer for loopback UDP transfer (fountain send / fountain recv); see its README quick start.
Paths match index.html:
docs/doc-engine.pdf— Fountain engine and utility usagedocs/doc-scheme.pdf— Fountain code scheme introduction
Operator guide source in the monorepo: docs/doc-operators.org (PDF not yet synced to this site).
The PDFs are generated from Org sources in the main library repository. From that repo’s root, run scripts/sync_fountain_docs_pdfs.sh (see that script for prerequisites). It exports the Org files to PDF, copies them into docs/ here, and creates a commit in this repository.
When adding a new crate to the landing page, edit index.html and this README.md, then commit in publish/fountain_docs (no PDF rebuild required).
- In this repo: Settings → Pages.
- Source: Deploy from a branch.
- Branch:
main(ormaster) →/ (root). - Save.
No build step: static HTML (index.html), CSS (style.css), and PDFs under docs/.