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

MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and t [...]

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:binary_rw/binary_writer.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:binary_rw/binary_reader.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
0
pub points
0%
popularity

Publisher

verified publisherpro100.dev

MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves.

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

More

Packages that depend on pro_binary