rumil_codec 0.6.0
rumil_codec: ^0.6.0 copied to clipboard
Binary codec library for Dart with ZigZag/Varint encoding, composable BinaryCodec instances, and product type composition via records.
0.6.0 #
Version aligned with the rumil-dart monorepo 0.6.0 release. No functional changes in this package.
0.5.0 #
- New:
dateTimeCodec— microsecond precision, preserves UTC/local flag. - New:
bigIntCodec— sign byte + varint length + big-endian magnitude bytes. - New:
enumCodec(values)— maps enum variants to varint ordinals. - 85 tests (was 70).
0.4.0 #
- Version aligned with rumil_parsers 0.4.0.
0.3.0 #
- Added @AstSerializable annotation and AstFormat enum.
0.2.0 #
- Doc comments on all public API elements.
0.1.0 #
- Core parser combinators: sealed Parser ADT with 26 subtypes, external interpreter, defunctionalized trampoline
- Warth seed-growth left recursion via
rule() - Stack-safe to 10M+ operations
- Typed errors with source location (line, column, offset)
- Lazy error construction via
late finalthunks - RadixNode O(m) string matching
- Full combinator DSL:
.zip(),.thenSkip(),.skipThen(),|,.map,.flatMap,.many,.sepBy,.chainl1,.chainr1,.between,.capture,.memoize - Format parsers: JSON (RFC 8259), CSV (RFC 4180), XML, TOML (v1.0.0), YAML (simplified 1.2), Proto3 schema
- AST decoders for JSON, TOML, YAML with
ObjectAccessorpattern - Formula evaluator with operator precedence via
chainl1, variables, custom functions - Binary codec: ZigZag, LEB128 Varint, BinaryCodec with
xmap+product2–product6composition - build_runner codegen for
@binarySerializableclasses and sealed hierarchies