pro_binary 1.0.2 copy "pro_binary: ^1.0.2" to clipboard
pro_binary: ^1.0.2 copied to clipboard

Efficient binary serialization library for Dart. Encodes and decodes various data types.

pro_binary - Binary Read/Write Library #

This library provides efficient binary reading and writing capabilities in Dart. It supports various data types and endianness, making it ideal for low-level data manipulation and network protocols.

Features #

  • Read and write operations for various data types (e.g., int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64).
  • Support for both big-endian and little-endian formats.
  • Efficient memory management with dynamic buffer resizing.

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  pro_binary: ^1.0.0

Then, run pub get to install the package.

Usage #

Writing Binary Data #

import 'package:pro_binary/pro_binary.dart';

void main() {
  final writer = BinaryWriter()
    ..writeUint8(42)
    ..writeInt8(-42)
    ..writeUint16(65535, Endian.little)
    ..writeInt16(-32768, Endian.little)
    ..writeUint32(4294967295, Endian.little)
    ..writeInt32(-2147483648, Endian.little)
    ..writeUint64(9223372036854775807, Endian.little)
    ..writeInt64(-9223372036854775808, Endian.little)
    ..writeFloat32(3.14, Endian.little)
    ..writeFloat64(3.141592653589793, Endian.little)
    ..writeBytes([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200, 255])
    ..writeString('Hello, World!');

  final bytes = writer.takeBytes();
  print(bytes);
}

Reading Binary Data #

import 'package:pro_binary/pro_binary.dart';

void main() {
  final buffer = Uint8List.fromList([
    42, 214, 255, 255, 0, 128, 255, 255, 255, 255, 0, 0, 0, 128,
    255, 255, 255, 255, 255, 255, 255, 127, 0, 0, 0, 0, 0, 0, 0, 128,
    195, 245, 72, 64, 24, 45, 68, 84, 251, 33, 9, 64,
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 100, 200, 255, 72,
    72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33
  ]);

  final reader = BinaryReader(buffer);

  final uint8 = reader.readUint8();
  final int8 = reader.readInt8();
  final uint16 = reader.readUint16(Endian.little);
  final int16 = reader.readInt16(Endian.little);
  final uint32 = reader.readUint32(Endian.little);
  final int32 = reader.readInt32(Endian.little);
  final uint64 = reader.readUint64(Endian.little);
  final int64 = reader.readInt64(Endian.little);
  final float32 = reader.readFloat32(Endian.little);
  final float64 = reader.readFloat64(Endian.little);
  final bytes = reader.readBytes(13);
  final string = reader.readString(13);

  print([uint8, int8, uint16, int16, uint32, int32, uint64, int64, float32, float64, bytes, string]);
}

Running Tests #

To run the tests, use the following command:

dart test

This will execute all tests in the test directory and provide a summary of the results.

Contributing #

Feel free to open issues or submit pull requests on GitHub. Contributions are always welcome!

License #

This project is licensed under the MIT License. See the LICENSE file for more details.

3
likes
160
pub points
0%
popularity

Publisher

verified publisherpro100.dev

Efficient binary serialization library for Dart. Encodes and decodes various data types.

Repository (GitHub)
View/report issues

Topics

#binary #serialization #deserialization

Documentation

Documentation
API reference

License

MIT (license)

More

Packages that depend on pro_binary