borer Logo

borer

Efficient CBOR and JSON (de)serialization for Scala.

Maven Central Build Status codecov Scala.js Scala Steward Uses Badges

borer

Complete
borer supports all CBOR and JSON features, incl. “over long” integers, 16-bit half-precision floats, BigInteger and BigDecimal, custom tags and “simple values”.
Lightweight
borer has zero external dependencies and its code is relatively compact.
Fast
borer features DOM-less pull-parsers with one-element look-ahead and is designed for a good tradeoff between performance and usability. It supports stream parsing (in constant memory, even for very large files) and consistently outperforms most other serialization libraries targeting CBOR or JSON that are available to Scala developers.
Flexible
borer tries hard to make integration into your applications environment as seamless as possible. The type-class based design makes a lot of aspects deeply and easily customizable.
Also, since borer offers a unified API for both, CBOR and JSON, it’s very easy to provide “bilingual” REST APIs that can consume and produce both formats interchangibly.
Debuggable
borer offers convenient in-depth logging of the encoding/decoding process that is very helpful for debugging serialization issues, especially when working with a binary format like CBOR.
Scala JS
All borer modules (except for borer-compat-akka and borer-compat-pekko) support scala.js.