v0 Roadmap

On your marks

1 v0 ✅ Complete

1.1 0.1.0-dev.1 → 0.1.0 ✅ Complete

Release gate based on the 0.1.0-dev.1 release review, plus one cross-repo hardening item (B4) raised by the KMDB 0.10.01 track.

0.1.0 was published to pub.dev on 2026-08-24. Every blocker and non-blocking item below is closed. The review’s one caveat on a public publish — that the README disclose iOS/Android as locally validated but not covered by automated CI — was addressed before the release. The Deferred table below seeds the next roadmap.

1.1.1 Blockers for 0.1.0

# Plan Status Notes
B1 WASM CI freshness check Done verify-wasm CI job rebuilds and diffs lib/assets/zstd.wasm under pinned Emscripten; test-web gated on it
B3 Pin any constraints in pubspec.yaml Done code_assets ^1.0.0, hooks ^1.0.3, logging ^1.3.0, ffigen ^20.1.1
B4 Bound the decompression allocation (S-2) + fix a native compress leak (F-1) Done From KMDB WI-8. decompress gained a maxOutputBytes bound (default 64 MiB, ZstdLimitExceededException on rejection) rejecting negative and over-cap declared sizes on both native and web; native compress no longer leaks on a mid-allocation failure; web _malloc now checks for a null return. No version bump — entries went into the existing ## 0.1.0-dev.4 CHANGELOG heading. Publishing remains a maintainer action riding KMDB WI-9

1.1.2 Non-blocking (before pub.dev publish)

# Item Status Notes
N2 Add .pubignore Done Excludes integration_test_app/, src/, docs/, test/fixtures/, site/, coverage/
N3 Reconcile init() signatures Done wasmUrl optional param added to native and stub; ignored on non-web platforms
N4 Fix spec Public API section Done Removed unexported consts; corrected init() signature; added ZstdException
N5 Remove unused constructor params Done Dropped inputBufferLength and outputBufferLength from all three implementations
N7 Typed exception class Done ZstdException implements Exception added; all throw Exception(...) replaced

1.1.3 Deferred (post-0.1.0)

Plan Notes
Vendored C source update automation make update_zstd VERSION=x.y.z target
iOS and Android CI coverage Mobile builds validated locally via make android_test / make ios_test; automated CI deferred post-0.1.0
Non-blocking compression on web/WASM ZstdSimple.compress/decompress run synchronously on the calling thread; on native, callers can offload via Isolate.run today, but web’s WASM module state is a top-level global — investigate whether Isolate.run (worker-backed on web) works cleanly per-instance, or whether the package needs its own async/worker-aware API