The 1.0 release of Circe will introduce a new approach to decoding that replaces cursors with a simple algebra of navigation and reading operations. While this approach is largely source-compatible with existing decoder definitions, it opens up a wide range of new possibilities. By decoupling the interpretation of the decoder from any particular JSON representation, we're now able, for example, to define (or generically derive) a Decoder value and then use it to decode an instance of Circe's Json AST, or of ScalaJSON's AST, or even to decode a type representing a BSON or YAML value.
While this new approach will be included in the core Circe module in 1.0, it's available now as a separate dependency. This talk will begin with a high-level overview of the motivations for the change, but the focus will be a hands-on exploration of the capabilities of the new approach.
YOU MAY ALSO LIKE:
The Future of Decoding in Circe
Travis Brown currently writes Scala for Stripe, maintains several open source Scala libraries (including Circe and iteratee.io), and contributes to many others (for example Finch, Cats, and Shapeless).