PackageTrack
Sign in Get early access

bcs

Binary Canonical Serialization (BCS) in Dart.

0.2.0 mofalabs/bcs

What this package is like to depend on

Last release 1 months ago

13 Jul 2026

Release timing varies

gaps range from 1 weeks to 12 months

Nearly every release is documented

notes for 10 of 10 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

10 releases · first in 2023

2 releases in the last 12 months

see the full history below

Release timeline

10 releases · Mar 2023 to Jul 2026
2024 2025 2026
Release Pre-release

Releases

latest 10
  1. 0.2.0 13 Jul 2026
    Release notes

    Full rewrite with a single public entry point (package:bcs/bcs.dart);
    implementation moved to lib/src/.

    Breaking changes:

    • Remove the legacy string-based registry API (LegacyBCS,
      registerStructType, ...) and the split libraries (bcs_type.dart,
      utils.dart, hex.dart, index.dart, consts.dart, ...).
    • Rename encoding helpers to hexEncode/hexDecode and
      base58Encode/base58Decode; drop the Encoding enum and base64 wrappers
      (use dart:convert).

    Improvements:

    • Strictly typed inputs; u64/u128/u256 accept int, BigInt or decimal
      String. struct/enumeration accept any Map or object with toJson().
    • Stricter, hardened decoding: canonical booleans, bounds-checked reads,
      validated enum indexes, ULEB128 capped at u32, vector lengths checked
      against remaining input, strict hex parsing, byte-range validation.
    • BcsWriter grows its buffer geometrically and writes in bulk.
    • Strict analyzer modes; requires Dart 3.2+.
    Open source →
    Release notes

    Full rewrite of the package as idiomatic Dart. Breaking changes.

    • Single public entry point package:bcs/bcs.dart; implementation moved to lib/src/.
    • Removed the legacy string-based registry API (LegacyBCS, registerStructType, ...).
    • Renamed encoding helpers to hexEncode/hexDecode and base58Encode/base58Decode; removed the Encoding enum and base64 wrappers (use dart:convert).
    • Strictly typed inputs for primitive types; u64/u128/u256 accept int, BigInt or decimal String. struct/enumeration accept any Map or an object exposing toJson().
    • Stricter decoding: canonical booleans, bounds-checked reads, validated enum indexes.
    • BcsWriter grows its buffer geometrically and writes byte ranges in bulk; its write methods return void (use cascades for chaining) and the allocateSize option is gone.
    • Enabled strict analyzer modes and additional lints; requires Dart 3.2+.
    Open source →
  2. 0.1.2 02 Oct 2025
    Release notes
    • Feat: Replace flutter_test with test package
    Open source →
  3. 0.1.1 06 Oct 2024
    Release notes
    • Optimize: Reading Bytes
    Open source →
  4. 0.1.0 14 Aug 2024
    Release notes
    • Refactor: version 2
    Open source →
  5. 0.0.6 31 Mar 2024
    Release notes
    • Feat: Register Fixed Array Type
    Open source →
  6. 0.0.5 26 Jan 2024
    Release notes
    • Fix: Convert Object to Map
    Open source →
  7. 0.0.4 03 Sep 2023
    Release notes
    • Fix: read128/read256 padLeft
    Open source →
  8. 0.0.3 24 Aug 2023
    Release notes
    • Fix: Iterate MappedListIterable
    Open source →
  9. 0.0.2 12 Aug 2023
    Release notes
    • Refactor BCS.
    Open source →
  10. 0.0.1 03 Mar 2023
    Release notes
    • Initial version, created by 0xmove.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive