ddidderr
dbc6992f3b
feat(compress): move stream orchestration into Rust
The high-level single-thread stream path previously combined stable-input
rewind, buffer fill, direct-versus-buffered output, pending flush, end-of-frame
reset, and progress hints in C. The multithreaded path likewise owned input
range selection, rsync and end-directive adjustments, job creation decisions,
and outer flush return policy in C.
Add explicit C/Rust projections and callbacks. Rust now drives the
single-thread state machine and the MT scheduling and flush decision sequence,
while C retains CCtx-sensitive block callbacks, reusable buffers, job
descriptors, synchronization, and worker lifecycle. Focused tests cover stable
and buffered stream behavior, errors, pending output, frame completion, and MT
scheduler branches. Sequence-store and dictionary boundaries remain unchanged.
Test Plan:
- Rust lib and CLI checks, tests, formatting, and clippy passed.
- Rust legacy feature matrix passed: 556 tests.
- Native lib and CLI builds passed; CLI tests passed: 41 tests.
- Native test-zstd, fuzzer, zstream, and decode-corpus gates passed.
2026-07-19 00:14:18 +02:00
..
2026-07-18 18:04:11 +02:00
2026-07-11 14:26:21 +02:00
2026-07-18 01:47:33 +02:00
2026-07-10 20:44:02 +02:00
2026-07-10 20:02:17 +02:00
2026-07-10 20:02:17 +02:00
2026-07-10 20:02:17 +02:00
2026-07-12 09:16:42 +02:00
2026-07-10 20:02:17 +02:00
2026-07-12 18:06:51 +02:00
2026-07-12 10:13:41 +02:00
2026-07-12 10:40:51 +02:00
2026-07-18 15:58:59 +02:00
2026-07-11 14:23:39 +02:00
2026-07-10 20:04:26 +02:00
2026-07-10 20:02:17 +02:00
2026-07-18 23:46:17 +02:00
2026-07-18 21:46:36 +02:00
2026-07-18 17:54:12 +02:00
2026-07-10 20:44:02 +02:00
2026-07-10 20:04:26 +02:00
2026-07-10 20:06:25 +02:00
2026-07-12 09:13:10 +02:00
2026-07-10 20:48:51 +02:00
2026-07-18 08:08:40 +02:00
2026-07-12 09:16:59 +02:00
2026-07-18 16:14:20 +02:00
2026-07-10 22:38:07 +02:00
2026-07-10 20:05:35 +02:00
2026-07-11 14:25:32 +02:00
2026-07-18 02:52:26 +02:00
2026-07-10 20:02:17 +02:00
2026-07-12 09:59:58 +02:00
2026-07-18 18:56:29 +02:00
2026-07-10 20:02:17 +02:00
2026-07-18 09:26:44 +02:00
2026-07-18 20:48:11 +02:00
2026-07-18 07:33:06 +02:00
2026-07-18 08:52:42 +02:00
2026-07-11 23:11:57 +02:00
2026-07-18 09:00:15 +02:00
2026-07-18 18:43:00 +02:00
2026-07-10 22:44:39 +02:00
2026-07-18 20:48:11 +02:00
2026-07-11 23:11:57 +02:00
2026-07-19 00:14:18 +02:00
2026-07-10 21:20:50 +02:00
2026-07-18 23:46:08 +02:00
2026-07-18 22:41:17 +02:00
2026-07-18 17:13:27 +02:00
2026-07-10 22:46:15 +02:00
2026-07-11 08:06:30 +02:00
2026-07-18 15:39:37 +02:00
2026-07-11 08:22:41 +02:00
2026-07-18 17:13:27 +02:00
2026-07-10 21:28:56 +02:00
2026-07-18 18:00:42 +02:00
2026-07-19 00:14:18 +02:00