Skip to content

0.0.9

Compare
Choose a tag to compare
@jinzhongjia jinzhongjia released this 26 Jul 11:30
· 2 commits to main since this release

Summary

Added comprehensive MessagePack timestamp extension type (-1) support and significantly expanded test coverage for the zig-msgpack library.

Key Features

πŸ• Timestamp Extension Support

  • Support for all three MessagePack timestamp formats per specification:
    • 32-bit timestamp: Seconds-only for 32-bit unsigned integers
    • 64-bit timestamp: Nanosecond precision with 34-bit second range
    • 96-bit timestamp: Full range with signed 64-bit seconds + 32-bit nanoseconds
  • Automatic optimal format selection based on value ranges
  • Seamless integration with existing serialization/deserialization logic

πŸ§ͺ Comprehensive Testing Enhancement

  • Boundary testing for all MessagePack formats (array32, map32, str16/32, bin16/32, ext8/16/32)
  • Edge case coverage (NaN/infinity floats, int64/uint64 boundaries, error conditions)
  • Format marker verification and Unicode string support
  • Memory management validation and timestamp-specific tests

πŸ“š Documentation Improvements

  • Updated README.md with timestamp usage examples and API documentation
  • Added Chinese translation (README_CN.md)
  • Enhanced usage examples and error handling documentation

Technical Implementation

  • Strict adherence to MessagePack timestamp specification (extension type ID -1)
  • Nanosecond precision validation (0-999,999,999)
  • Full Unix timestamp range support including pre-1970 negative values
  • Maintains backward compatibility

Breaking Changes

None. Fully backward-compatible additive functionality.

Performance Impact

Minimal. Negligible timestamp support overhead with optimal storage efficiency through automatic format selection.