Repository navigation
Roadmap
YadeWira edited this page Oct 25, 2026
·
13 revisions
Rough order; nothing here is a promise.
- Format v3 (
-ec): decodes at ~2200–2400 MB/s against v2's ~3100–3400, with the Huffman decoder at this CPU's limit (latency bound). Options: decode the literal chunks on a second thread, a higher minimum gain per chunk, or accept it as a slower high-ratio mode. Not frozen until that is settled. - Entropy-coding tokens and offsets too (order-0 per chunk promised ~30.5% at the top level).
- A "heavy" variant with a larger window for the high levels.
Done: decoder profiled and tuned (format v2's token table, assembler fast loop); fast levels 0–1 (16-bit tables, closed 2026-10-18); levels 2–3 rebuilt on two hash tables (v0.2.6); levels 4–8 on lz4hc's parse with an assembler chain search (v0.2.8); levels 9–10's optimal parser on a binary-tree match finder (v0.2.9/v0.2.10); C fast paths for 32-bit Windows and arm64, and C parses over the assembler searches on x86_64 (v0.2.11); decode-aware optimal parsing at levels 9–10.
- Codecs further along the curve: LZ + entropy coding (zstd / lz6 class), high ratio (LZMA class).
-
Encryption (v0.5.0): archives and streams with a password: Argon2id, XChaCha20-Poly1305, keyed fragment ids and cutter; both checked against the RFCs and libsodium / OpenSSL; format provisional until reviewed. Next:
syc kto change the password (the two key slots are there). - Formats frozen at v0.4.0: the archive (format 2, with a codec byte per version) and the stream (version 4), with a reference reader and test vectors.
-
The command line and archiver, in stages (format: syc archive format):
- Options GNU-style, stdin/stdout,
t, exit codes — done in v0.3.0. - The
.sycarchive format — designed (append-only versions, dedup by 64 KiB content-defined fragments, BLAKE2s-256). - BLAKE2s and the fragment cutter, with their tests — done in v0.3.1.
-
syc a(one version) andl/i/ton archives — done in v0.3.1. -
syc x: overwrite rules (-f,--skip),-O, filters,-u(older versions) — done in v0.3.1. - Appending versions and deletions; recovering from an uncommitted version — done in v0.3.2.
- Full metadata: symlinks, empty directories, uid/gid, Windows attributes — done in v0.3.3 (symlinks on Windows last).
- Progress,
-v/-q, and the Usage page — done in v0.3.3.
- Options GNU-style, stdin/stdout,
- Multi-threading sized for 1–4 cores.