rumil_codec
Binary codec library for Dart with ZigZag/Varint encoding, composable BinaryCodec instances, and product type composition via Dart 3 records.
Usage
import 'package:rumil_codec/rumil_codec.dart';
// Primitive codecs
final bytes = intCodec.encode(42); // ZigZag + LEB128 varint
final value = intCodec.decode(bytes); // 42
// Compose for domain types
final personCodec = product2(stringCodec, intCodec).xmap(
(r) => Person(r.$1, r.$2),
(p) => (p.name, p.age),
);
// Composites
final listCodec = intCodec.list; // BinaryCodec<List<int>>
final optCodec = stringCodec.nullable; // BinaryCodec<String?>
For automatic derivation via build_runner, see rumil_codec_builder. Supports both @binarySerializable (binary wire format) and @astSerializable (JSON/YAML/TOML/XML AST encoders).
See the main README for full documentation.
Libraries
- rumil_codec
- Binary codec library with composable BinaryCodec instances.