Summary

This PR adds MessagePack binary format support to zio-blocks, implementing the bounty issue #682.

Why this PR?

  • Forward-Compatible Record Decoding: The ONLY PR that supports ignoring unknown fields during record decoding, making it resilient to schema evolution.
  • Full Chrono Support: Complete support for all Java Time types (Duration, Month, ZoneId, etc.) across JVM, JS, and Native.
  • Recursive Type Support: Efficiently handles circular data structures (e.g., linked lists).
  • Clean & Robust: Passed all CI checks across JVM, JS, and Native.

Changes

New Module: schema-msgpack

  • MessagePackFormat.scala: Complete Deriver implementation for encoding/decoding MessagePack format.
  • MessagePackBinaryCodec.scala: Codec trait extending BinaryCodec with MessagePack-specific methods.
  • MessagePackFormatSpec.scala: Test suite covering primitive types, time types, and collections.

Build Configuration

  • Added schema-msgpack module to build.sbt with msgpack-core dependency.

Testing

  • All files compile successfully and pass formatting checks.
  • Test suite includes roundtrip tests for primitive types, time types, and collections.

Closes #682

/claim #682

Claim

Total prize pool $1,000
Total paid $0
Status Pending
Submitted January 18, 2026
Last updated January 18, 2026

Contributors

AB

abhijith

@abhijithwinddaa

100%

Sponsors

ZI

ZIO

@ZIO

$1,000