yEnc decoding, file assembly, and article cache for NZB download clients.
Part of the nzb-* usenet crate stack. Decodes yEnc-encoded NNTP article bodies using SIMD acceleration (via yenc-simd), assembles multi-part articles into complete files, and manages an in-memory article cache.
| Crate | Role |
|---|---|
| nzb-nntp | Async NNTP client, connection pool |
| nzb-core | Shared models, config, SQLite DB |
| nzb-decode | yEnc decode + file assembly (this crate) |
| nzb-news | NNTP fetch engine |
| nzb-dispatch | Article dispatcher, retry, hopeless tracking |
| nzb-postproc | PAR2 repair, archive extraction |
| nzb-web | Queue manager, download orchestration |
The nzb-decode-ffi workspace crate builds libnzbyenc.so, a shared library that exports RapidYenc-compatible symbols (rapidyenc_decode_ex, rapidyenc_crc, rapidyenc_version and the init functions). Programs written against RapidYenc through FFI, such as NNTmux's PHP decoder, can load it in place of RapidYenc:
cargo build --release -p nzb-decode-ffi
# target/release/libnzbyenc.soIt decodes a bare yEnc payload (the data between =ybegin/=ypart and =yend), skips line endings, and treats a line-leading =y as an escaped byte rather than a keyword.
MIT