Releases: firechip/cobs_codec
Release list
cobs_codec 1.2.0
cobs_codec 1.2.0 (Dart)
Additive, backward-compatible release — the dart:convert Codec contract is unchanged, and the output is byte-identical to the Rust, Kotlin, and Swift members of the Firechip COBS family.
✨ New features
- In-place COBS/R decode —
cobsrDecodeInPlace/cobsrDecodeInPlaceWithSentineldecode the reduced codec within the caller'sUint8Listand return the decoded length, needing no output buffer (COBS/R never expands the data).
🔧 Tooling
- A dependency-free throughput benchmark (
benchmark/cobs_benchmark.dart, excluded from the published package) that runs on every supported SDK. - Conformance now also covers the configurable-sentinel and decode-error vectors.
📦 Install
dart pub add cobs_codecpub.dev: https://pub.dev/packages/cobs_codec/versions/1.2.0
The attached cobs_codec-1.2.0.tar.gz is the exact published package archive (from pub.dev).
✅ Verified & published
First release published via pub.dev automated publishing (OIDC) from GitHub Actions on the v1.2.0 tag — no static credentials. Conformance vectors byte-identical to the shared suite and the Rust / Kotlin / Swift siblings.
cobs_codec 1.1.0
cobs_codec 1.1.0 (Dart)
Three new capabilities for the pure-Dart COBS / COBS-R codecs — all additive and backward compatible (the dart:convert Codec contract is unchanged), and byte-identical to the Rust and Kotlin members of the Firechip COBS family.
✨ New features
Configurable delimiter (sentinel) — cobsEncodeWithSentinel / cobsDecodeWithSentinel (and the cobsr* pair) make the output avoid any chosen byte, so it can delimit frames instead of 0x00. sentinel == 0 is byte-for-byte identical to the plain codec, and decoding never mutates its input.
cobsEncodeWithSentinel([0x11, 0x22, 0x00, 0x33], 0xAA); // [0xA9, 0xBB, 0x88, 0xA8, 0x99] — no 0xAAIn-place decode (basic COBS) — cobsDecodeInPlace(Uint8List buffer) decodes within the buffer and returns the decoded length; the bytes are Uint8List.sublistView(buffer, 0, n).
Sentinel-aware framing — cobsFrame / cobsUnframe and both stream transformers (CobsFrameEncoder / CobsFrameDecoder) take an optional sentinel named parameter.
📦 Install
dart pub add cobs_codecpub.dev: https://pub.dev/packages/cobs_codec/versions/1.1.0
The attached cobs_codec-1.1.0.tar.gz is the exact published package archive.
✅ Verified
pana 160 / 160; dart analyze --fatal-infos + tests green on Dart stable and 3.5.0; conformance vectors byte-identical to the shared suite and the Rust / Kotlin siblings.
cobs_codec 1.0.0 (Dart)
First release of cobs_codec — Consistent Overhead Byte Stuffing (COBS) and COBS/R for Dart & Flutter.
Highlights
- Basic COBS and COBS/R (Reduced) encode/decode, byte-for-byte identical to the reference implementations (validated by 20,000-vector differential testing against
cobs-python). dart:convertnative —cobs/cobsrareCodecs thatfusewithjson/utf8/base64and support chunked conversion.- Stream framing for
0x00-delimited serial/UART links:cobsFrame,cobsUnframe, and theCobsFrameEncoder/CobsFrameDecodertransformers. The decoder reassembles packets across arbitrary chunk boundaries, propagates pause/resume/cancel to the source, and bounds buffering withmaxFrameLength. - Zero dependencies, all 6 platforms (mobile, desktop, web, server), wasm-ready.
Quality
- 45 tests, strict static analysis (0 issues), pana 160/160.
Install
dependencies:
cobs_codec: ^1.0.0pub.dev: https://pub.dev/packages/cobs_codec/versions/1.0.0
The attached cobs_codec-1.0.0.tar.gz is the exact published package archive (from pub.dev).