data_serializer
पोर्टेबल डार्ट पैकेज जो डेटा सीरियलाइजेशन/डीसीरियलाइजेशन को दक्षता से हैंडल करता है, एक डायनामिक BytesBuffer के साथ डेटा पढ़ने और लिखने के लिए।
पोर्टेबल डार्ट पैकेज जो डेटा सीरियलाइजेशन/डीसीरियलाइजेशन को दक्षता से हैंडल करता है, एक डायनामिक BytesBuffer के साथ डेटा पढ़ने और लिखने के लिए।
^1.0.1^1.19.1^5.1.1^1.31.1^3.2.3^1.15.0^1.9.1यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।
pub package Null Safety Codecov Dart CI GitHub Tag New Commits Last Commits Pull Requests Code size License
Portable Dart package to handle data serialization/deserialization efficiently,
including a dynamic BytesBuffer to read/write data.
See the API Documentation for a full list of functions, classes and extension.
import 'package:data_serializer/data_serializer.dart';
void main() {
// Dynamic bytes buffer with initial capacity of 16 bytes.
var buffer = BytesBuffer(16);
// Write a unsigned int of 32 bits:
buffer.writeInt32(0x10203040);
// Write a `String` encoded using UTF-8:
buffer.writeString('Hello!');
// Write a unsigned int of 64 bits:
buffer.writeUint64(9223372036854775807);
// Write a data block (prefixed by 4 bytes for he data length).
var dataBlock = [110, 120, 130, 140, 150, 160].toUint8List();
buffer.writeBlock32(dataBlock);
// Write all bytes:
buffer.writeAll([210, 220]);
// The current length of the buffer, expanded automatically:
print('length: ${buffer.length}');
// Change the current position cursor to `0`:
buffer.seek(0);
// Read a 32 bits int:
var n32 = buffer.readUint32();
print('n32: 0x${n32.toHex32()}');
// Reads a `String` decoding from UTF-8:
var s = buffer.readString();
print('s: $s');
// Read a 64 bits int:
var n64 = buffer.readUint64();
print('n64: $n64');
// The current buffer position:
print('position: ${buffer.position}');
// Read a data block:
var dataBlock2 = buffer.readBlock32();
print('dataBlock2: $dataBlock2');
// The position after read the data block:
print('position: ${buffer.position}');
// The remaining bytes in the buffer:
var tailBytes = buffer.readRemainingBytes();
print('tailBytes: $tailBytes');
}
OUTPUT:
length: 34
n32: 0x10203040
s: Hello!
n64: 9223372036854775807
position: 22
dataBlock2: [110, 120, 130, 140, 150, 160]
position: 32
tailBytes: [210, 220]
All the operations are tested to be compatible with JavaScript.
Note that JS only supports 53-bits integers. To avoid any issue serializing 64-bits integers,
try to use BigInt serialization, or ensure that you are bellow the 53-bits range.
See the class DataSerializerPlatform if you need runtime information about integers support.
This package aims to always have a high test coverage percentage, over 95%. With that the package can be a reliable tool to support your important projects.
The official source code is hosted @ GitHub:
Please file feature requests and bugs at the issue tracker.
Any help from the open-source community is always welcome and needed:
If you donate 1 hour of your time, you can contribute a lot, because others will do the same, just be part and start with your 1 hour.
Graciliano M. Passos: gmpassos@GitHub.