Scala macros for compile-time generation of safe and ultra-fast JSON codecs, with circe integration.
jsoniter-scala is a Scala library that generates JSON codecs at compile time using macros, providing ultra-fast and safe parsing and serialization. It solves the performance and safety issues of runtime reflection-based JSON libraries by producing optimized code directly for your data structures.
Scala developers building high-performance applications that require efficient JSON processing, such as web services, microservices, and data pipelines.
Developers choose jsoniter-scala for its combination of compile-time safety, exceptional speed, and rich feature set, outperforming many other JSON libraries in benchmarks while maintaining strict correctness and configurability.
Scala macros for compile-time generation of safe and ultra-fast JSON codecs + circe booster
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks consistently show it outperforms other Scala JSON libraries by processing UTF-8 bytes directly, avoiding intermediate ASTs and minimizing allocations.
Macro-generated codecs catch errors early, with fail-fast validation and configurable limits for DoS protection, reducing runtime surprises.
Handles primitives, collections, case classes, ADTs, Java time types, and more across JVM, Scala.js, and Scala Native with consistent behavior.
Offers both compile-time and runtime options for customization, including field name mapping, pretty printing, and parsing limits, tailored to specific needs.
Setting up separate macro dependencies and debugging compilation errors—like those with nested ADTs or recursive structures—requires extra effort and workarounds.
Cannot parse arbitrary JSON without pre-generated codecs, making it unsuitable for dynamic or schema-less scenarios where reflection is needed.
The vast array of options, while powerful, can be overwhelming and lead to misconfiguration, increasing development time and potential for errors.