pro_binary 3.1.0
pro_binary: ^3.1.0 copied to clipboard
Efficient binary serialization library for Dart. Encodes and decodes various data types.
3.1.0 #
- feat: Added
BinaryWriterPool.withWriter()for safer and more concise object pool usage. - feat: Added modern API features for a more idiomatic experience:
BinaryReader: Addedoperator []for absolute byte access (e.g.,reader[0]).BinaryReader: Addedcall()method for shorthand byte reading (e.g.,reader(10)).BinaryWriter: Addedcall()method for shorthand byte writing (e.g.,writer([1, 2, 3])).
- performance: Optimized
writeVarStringwith a high-performance one-pass "optimistic shift" algorithm (~30% faster). - performance: Unrolled
readVarUintloop for the first 3 bytes, resulting in ~25% speedup in AOT mode. - performance: Applied Fast Path / Slow Path optimization to buffer expansion logic for better inlining.
- improvement: Enhanced
BinaryWriterPool.clear()with explicit buffer reference discarding to assist GC. - fix: Added missing
ensureSizecheck inBinaryWriterPool.acquireto guarantee buffer capacity when reusing writers. - improvement: Updated lint rules to
pro_lints/recommended.yamland resolved related lint issues. - deps: Updated
pro_lints,test, andmetadependencies to latest versions. - test: Refactored pool benchmarks for better accuracy and reliability.
- docs: Fixed minor typos and improved documentation for
BinaryWriterPool. - docs: Complete README overhaul with a focus on recipes and technical clarity.
3.0.0 #
Improvements:
-
feat: New methods and properties
BinaryWriterPoolfor reusingBinaryWriterinstancesgetUtf8Length(String)to calculate UTF-8 byte length without encodingwriteVarString(String)andreadVarString()for variable-length string encodingwriteBoolandreadBoolmethods for boolean valueswriteVarUintandreadVarUintfor variable-length unsigned integerswriteVarIntandreadVarIntfor variable-length signed integerswriteVarBytesandreadVarBytesfor variable-length byte arrays- Navigation methods in
BinaryReader:peekBytes(),skip(),seek(),rewind(), andreset()
-
docs: Comprehensive documentation overhaul
- Added detailed API documentation with usage examples for all methods
- Documented
writeVarString(),readVarString(), andgetUtf8Length() - Included performance notes and best practices
- Added inline comments explaining complex encoding algorithms
-
test: Expanded test suite
- Coverage for all new methods and edge cases
- Performance benchmarks for encoding/decoding functions
- Validation tests for UTF-8 handling and error scenarios
-
improvement: Refactored internal codebase
- Improved modularity and readability
- Enhanced error handling with descriptive messages
- Optimized buffer management for better performance
-
fix: Resolved known issues
2.2.0 #
test: Added integration tests for new error handling features deps: Update internal dependencies to latest versions
2.1.0 #
- feat: Added detailed error messages with context (offset, available bytes)
- feat: Added
toBytes()method inBinaryWriter(returns buffer without reset) - feat: Added
reset()method inBinaryWriter(resets without returning data) - feat: Added
allowMalformedparameter toreadStringinBinaryReader - improvement: Increased performance of read/write operations
- improvement: Optimized internal buffer management in
BinaryWriter - improvement: Added validation for all boundary conditions
- test: Added new tests for boundary checks and new methods
- docs: Updated documentation with better examples and error handling
2.0.0 #
- Update dependencies
- sdk: ^3.6.0
1.1.1 #
- fix: warnings
1.1.0 #
-
fix: Increased test coverage, providing more comprehensive validation for edge cases.
-
performance: Optimized buffer management to reduce memory reallocations and improve efficiency.
-
docs: Updated documentation to cover new properties and methods, including additional examples.
-
Writer:
- feat: Added
bytesWrittenproperty to track the total number of bytes written to the buffer. - feat: Introduced
initialBufferSizeparameter in the constructor, allowing configuration of the initial buffer size for optimized memory usage. - improvement: Enhanced memory management, with the buffer now resizing by doubling in size when capacity is reached to reduce frequent resizing.
- feat: Added
-
Reader:
- feat: Added
bytesReadproperty to monitor the total number of bytes read from the buffer. - feat: Introduced
resetmethod, allowing users to reset the reading position to the start of the buffer for convenient re-reading.
- feat: Added
1.0.2 #
- docs: Updated documentation.
1.0.1 #
- docs: Updated documentation.
- feat: Added
exampledirectory with basic usage examples.
1.0.0 #
- Initial release.