circe
requests-scala
circe | requests-scala | |
---|---|---|
12 | 4 | |
2,474 | 697 | |
0.2% | 0.3% | |
8.6 | 4.5 | |
5 days ago | about 1 month ago | |
Scala | Scala | |
Apache License 2.0 | GNU General Public License v3.0 or later |
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.
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
requests-scala
-
Scala opensource projects
There's the Li Haoyi's ecosystem of tools and libraries that's fun to hack on, has a low entry-bar (with a design philosophy of using the least complex abstractions for the job), and has few libs like requests and cask that may appeal to those liking some python minimalism. That's not the fastest way to learn hardcore FP, that's not the worst either.
-
Scala Toolkit makes Scala powerful straight out of the box
Another thing that caught my attention is the choice for HTTP client. If the authors wanted to go with the simplest thing, they could have picked requests-scala (from the com-lihaoyi family of libraries). If they wanted to go with full blown Scala FP, they could have chosen http4s client (Ember). Sttp awkwardly sits in the middle being neither.
-
Scala vs Java/C# code examples
Finally, to give you an example of how simple Scala can be when you get rid of all the fancy stuff, take a look at the examples in Li Haoyi's requests-scala library, a port of the excellent requests Python library. I challenge anyone to call that code complex.
-
Every time I sit down to use an HTTP client and JSON parser, I get really frustrated
http4s (either with Blaze or Ember) is great, but you may need to think a bit about what you're doing. Maybe https://github.com/com-lihaoyi/requests-scala will be the best choice for your particular situation?
What are some alternatives?
json4s - JSON library
Akka HTTP - The Streaming-first HTTP server/module of Akka
spray-json - A lightweight, clean and simple JSON implementation in Scala
Finch.io - Scala combinator library for building Finagle HTTP services
play-json
jefe - Manages installation, updating, downloading, launching, error reporting, and more for your application.
zio-json - Fast, secure JSON library with tight ZIO integration.
Http4s - A minimal, idiomatic Scala interface for HTTP
jackson-module-scala - Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes
Spray - A suite of scala libraries for building and consuming RESTful web services on top of Akka: lightweight, asynchronous, non-blocking, actor-based, testable
jsoniter-scala - Scala macros for compile-time generation of safe and ultra-fast JSON codecs
sttp - The Scala HTTP client you always wanted!