splain
circe
Our great sponsors
splain | circe | |
---|---|---|
2 | 12 | |
369 | 2,473 | |
- | 0.4% | |
6.3 | 8.6 | |
2 months ago | 4 days ago | |
Scala | Scala | |
MIT License | Apache License 2.0 |
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.
splain
-
Every time I sit down to use an HTTP client and JSON parser, I get really frustrated
Requires deep knowledge of implicits and how to debug them. Which if you have nested data structures is basically impossible without something like Splain.
-
Getting Comfortable with Implicits
In Scala 2.13 and above, there is a compiler switch that will print out the exact implicit you are missing at compile time and why (https://docs.scala-lang.org/overviews/compiler-options/errors.html). Prior to that in scala 2, you need the tek/splain compiler plugin (https://github.com/tek/splain).
circe
-
Database abstraction library which allows a clean domain model
Using Circe so I define some classes that contain my custom Encoder[BusinessObject] in a file and I use that whenever I want to save/store a record, or handle a web request or respose. I also represent my mongo queries as JSON objects that I can freely build then pass to the driver.
- Scala Library To Generate Case Classes for JSON
-
What companies/startups are using Scala (open source projects on github)?
Circe adopters should be using Scala https://github.com/circe/circe
-
what popular companies uses Scala?
If you look at Circe's github repo you will see a very large list of very recognizable companies, that should give you some idea. Circe isn't the ONLY Json parsing library, but it is probably the most popular, so - should give you a rough idea of the types and variety of companies using Scala.
-
Every time I sit down to use an HTTP client and JSON parser, I get really frustrated
Has the worst error messages I've ever seen for a parser. "Attempt to decode value on failed cursor" is not helpful when all you have is missing fields. Has been an issue for 5 years.
-
It's unsafe to depend on Typelevel Libraries
Circe tries to drop Scala 2.12 support in retaliation for not enough users paying them.
-
Building a REST API in Scala 3 using Iron and Cats
Circe: https://circe.github.io/circe/
-
[Circe] Renaming fields for value classes during decoding
PR for the same functionality in Scala3: https://github.com/circe/circe/pull/1800
-
Scala 3.0 serialization
Otherwise I tend to just use ZIO-JSON or Circe both of which have been updated for Scala 3.
-
Performance of 12 JSON parsers for Scala
I've updated results of benchmarks of 12 JSON parsers for Scala: - AVSystem's scala-commons - Borer - Circe - DSL-JSON - Jackson - jsoniter-scala - Play-JSON, - play-json-jsoniter - Spray-JSON - uPickle - weePickle - zio-json
What are some alternatives?
sbt-dependency-check - SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow:
json4s - JSON library
better-monadic-for - Desugaring scala `for` without implicit `withFilter`s
spray-json - A lightweight, clean and simple JSON implementation in Scala
sbt-revolver - An SBT plugin for dangerously fast development turnaround in Scala
play-json
xsbt-web-plugin - Servlet support for sbt
zio-json - Fast, secure JSON library with tight ZIO integration.
sbt-sonatype - A sbt plugin for publishing Scala/Java projects to the Maven central.
jackson-module-scala - Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes
sbt-updates - sbt plugin that can check Maven and Ivy repositories for dependency updates
jsoniter-scala - Scala macros for compile-time generation of safe and ultra-fast JSON codecs