brookmd 0.23.0 — wire delta mode: the streaming re-emit floor is retired
The last by-design quadratic in the streaming pipeline is gone. Previously, every append re-emitted each open block's full rendered HTML across the patch boundary — O(n²/chunk) total bytes for a block that grows across many chunks (the documented "re-emit floor"). Wire contract v1.2.0 adds an opt-in delta mode: an active block that was emitted in the previous patch serializes as a verified splice — html_delta: { keep_bytes, keep_units, append } — against that emit. The kept prefix is established by byte comparison, never structural inference, so reconstruction is byte-exact by construction. Committed blocks always carry full HTML.
Measured (200 KB document, 256-byte chunks, real WASM boundary):
| Shape | Total patch JSON before | After | Wall |
|---|---|---|---|
| Streaming list | 119.6 MB | 0.78 MB (153× less) | 2.8× faster |
| Unclosed code fence | 80.1 MB | 0.58 MB (137× less) | 4.9× faster |
| Fast-committing prose | 2.0 MB | 1.95 MB | unchanged |
Emitted bytes are now gated linear in CI (tests/scaling.rs); the multipliers grow with document size since the quadratic curve is gone.
- npm
brookmd/brookmd-react-native: enabled automatically and invisibly — no API change,Block.htmlis always complete. Just upgrade. - Raw-boundary consumers (WASM
BrookParser, nativeBrookSession, C ABI): opt-in viasetWireDelta(true)/wire_delta: true; the default wire stays byte-identical to contract v1.1.0. Enabling it obliges you to reconstruct per WIRE.md §11. - Pinned by reconstruction-parity suites (dual UTF-8/UTF-16 offset verification), wire goldens in all five language surfaces (core / FFI / C-ABI / Kotlin / Swift, including the Android instrumented twin on an emulator), a fuzzer extension asserting per-patch reconstruction on arbitrary inputs, and the RN app-level e2e on emulator + simulator.
Ships as npm brookmd@0.23.0, crates.io brookmd-core 0.23.0, and npm brookmd-react-native@0.1.1. Also includes 0.22.2's core perf pass (7–24% faster streaming across all shapes).
Prebuilt native artifacts (experimental)
CI-built binaries for the native bindings, rebuilt from this release — the Swift/Kotlin/C-ABI/Flutter bindings are not yet on package registries. All emit the same versioned wire (WIRE.md v1.2.0), pinned by per-language golden tests.
| Asset | Contents | SHA-256 |
|---|---|---|
brook_md_ffi.xcframework.zip |
Swift/uniffi XCFramework: iOS device + simulator + macOS (arm64 + x86_64) | 9a3108613c5b259632ee6d7509029517398879fbe62f19c1f547c3a4478d8fd4 |
brookmd-ffi-android-jniLibs.zip |
Android libbrook_md_ffi.so — arm64-v8a, armeabi-v7a, x86_64 (16 KB page aligned) |
9a4988929179d2399bc0a08cf4fc55381081023eaaa4e940de55a3eab61fd17b |
brookmd-ffi-rn-ios.xcframework.zip |
React Native iOS XCFramework (device + fat simulator) | ffa941cb9471ada14da6eb8d5baaf293b130ab8faed06860ec19decc1025ebcd |
brookmd-cabi-android.zip |
C-ABI libbrook_md_cabi.so per ABI + brook_md.h |
d730ea438ba0de88a740ca750599eea0063d869f7195ba151b231ea3c56daf4c |
brookmd-cabi-apple.zip |
C-ABI XCFramework + universal macOS dylib + brook_md.h |
e7abbb172324ad3d452307191a7fce7a4ecac13ba515a8262c76ae13136ade4d |
Swift Package Manager binaryTarget example:
.binaryTarget(
name: "BrookMdRustFFI",
url: "https://github.com/siinghd/brookmd/releases/download/v0.23.0/brook_md_ffi.xcframework.zip",
checksum: "9a3108613c5b259632ee6d7509029517398879fbe62f19c1f547c3a4478d8fd4"
)