weePickle
jsoniter-scala
Our great sponsors
weePickle | jsoniter-scala | |
---|---|---|
1 | 29 | |
73 | 701 | |
- | - | |
6.5 | 9.7 | |
5 months ago | about 17 hours ago | |
Scala | Scala | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
weePickle
-
Updated benchmark results of JSON parsers for Scala - now with results for circe and play-json boosters based on jsoniter-scala.
The summary would be that jsoniter-scala-core API can speed up AST-based parsers like circe and play-json greatly. But the code generated by jsoniter-scala-macros API is much more efficient, so I'm expecting that some JSON parsers that allow derivation of direct codecs will port or reuse best implementations from jsoniter-scala-core API like here or here.
jsoniter-scala
-
1BRC Merykitty's Magic SWAR: 8 Lines of Code Explained in 3k Words
What an amazing step by step explanation!
More than 2 years ago I found that byte array view var handles are quite suitable to cook efficient SWAR routines with Java/Scala.
See a lot of other examples of SWAR usage, like parsing Base16/64 string, java.time.* and number values directly from byte arrays:
https://github.com/plokhotnyuk/jsoniter-scala/blob/master/js...
-
The Newest Java Json Benchmark Results just dropped
Afaik dsl-json came up with a lot of improvements and inspired a several other libraries like JsonIter and jsonIter-scala. Jsoniter-scala by u/plokhotnyuk is probably the most optimized JSON library on the JVM at this point, and seems to power most of the Scala ecosystem. Some implementations/optimizations eventually made their way back into Jackson and other libraries.
-
Please try my JSON library
I was on your place more then 5 years ago, when cut the 1st release of jsoniter-scala.
-
smithy-translate : a CLI tool to turn openapi specs and json-schema specs into smithy specs, written in Scala
We have our own open-source code-generator that produces Scala code from Smithy. The code module is entirely dependency-free, and the generated code is not biased towards any library, be that http or json. We do however have out-of-the-box integration with jsoniter and http4s.
-
Why does Scala seem to be slow at benchmark results?
You can use jsoniter-scala. It is easy to use like upickle.
-
Starting with scala
BEWARE: uJson is vulnerable under DoS attacks
-
Is Scala a good choice for a data intensive web backend?
Please see sources (and GitHub history of development) of jsoniter-scala as an example in the domain of JSON parsing and serialization.
-
Learning macros in scala 2.13
I suggest looking into jsoniter-scala Macro API it has unique support of both Scala 2 and Scala 3 in a source compatible manner.
-
Using SWAR techniques to speed up parsing and serialization from/to JSON
Since v2.13.6 release jsoniter-scala dropped support of Java 8: https://github.com/plokhotnyuk/jsoniter-scala/releases/tag/v2.13.6
SWAR (SIMD in register) techniques were used in the last release of jsoniter-scala to speed up parsing and serialization on JVM platforms.
What are some alternatives?
circe - Yet another JSON library for Scala
json4s - JSON library
DSL-JSON - High performance JVM JSON library
Play JSON - The Play JSON library
jackson-module-scala - Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes
spray-json - A lightweight, clean and simple JSON implementation in Scala
None Is Not Null - JSON typeclasses that know the difference between null and absent fields
sbt-json - sbt plugin that generates Scala case classes for easy, statically typed and implicit access of JSON data e.g. from API responses
scala-json - Compile-time JSON marshaling and abstraction for Scala, Scala Native and Scala.js
Jackson - Core part of Jackson that defines Streaming API as well as basic shared abstractions
jawn - Jawn is for parsing jay-sawn (JSON)
borer - Efficient CBOR and JSON (de)serialization in Scala