state_machines
circe
Our great sponsors
state_machines | circe | |
---|---|---|
5 | 12 | |
795 | 2,473 | |
1.4% | 0.4% | |
3.3 | 7.4 | |
4 days ago | 6 days ago | |
Ruby | 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.
state_machines
- Gem adds support for creating state machines for attributes on any Ruby class
-
Practical State Machinery
State Machines (Ruby) - A popular library providing a Ruby DSL for easily building finite state machines
-
Why Developers Never Use State Machines (2011)
As a regular user of the state_machine Ruby gem, I wouldn't recommend it. If you don't believe me, just check out the "Class definition" section of the usage examples: https://github.com/state-machines/state_machines#usage
The problems are obvious. It's built on magic and indirection. This leads to difficult to debug state machine problems. For anything beyond simple state machines you quickly lose any idea of what your object is doing.
-
ActiveRecord: Adding Boolean methods for DateTime columns
Might this be better handled with a state machine with active record integration?
-
Ruby 3 Released
Here's an example of how it can happen - look at the code examples in https://github.com/state-machines/state_machines - almost everything you are coding is in the DSL of that library if you are using it:
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?
AASM - AASM - State machines for Ruby classes (plain Ruby, ActiveRecord, Mongoid, NoBrainer, Dynamoid)
json4s - JSON library
State Machine - Adds support for creating state machines for attributes on any Ruby class
spray-json - A lightweight, clean and simple JSON implementation in Scala
Statesman - A statesmanlike state machine library.
play-json
simple_states - A super-slim statemachine-like support library
zio-json - Fast, secure JSON library with tight ZIO integration.
state_shifter
jackson-module-scala - Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes
transitions - State machine extracted from ActiveModel
jsoniter-scala - Scala macros for compile-time generation of safe and ultra-fast JSON codecs