Skip to content
Scala Shell JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


What is Argonaut?

Argonaut is a JSON library built using Scala. It provides functionality to specify how to convert to and from JSON for an arbitrary Scala object. It relies on the Scala parser libraries (util.parsing.combinator) to read an arbitrary string into a JSON data type, which is known to be slow. Argonaut is licenced under BSD3 (see etc/LICENCE).

The JSON data type also implements a large combinator library in an effort to make it easy to use, however, much of this library would be better implemented by exploiting partial lenses and a zipper.

Argonaut is intended for simple applications that use specification-compliant JSON. Argonaut is released under a BSD3 open-source licence.


  • Lenses and partial lenses for product and sum types, in particular for viewing and updating values of the Json sum type.
  • A zipper (com.ephox.argonaut.Cursor) for traversing and updating a Json data structure.
  • A traversal data structure (com.ephox.argonaut.Shift) that tracks its history of visited positions with an underlying cursor.
  • A pretty-printer for outputting JSON values.
  • A codec for taking values of arbitrary type to and from JSON values.

SBT Settings

To use argonaut, add the following repositories to your build:

override lazy val settings =
  super.settings ++
    Seq(resolvers := Seq(
      " snapshots"  at ""
    , " releases"  at ""
    , "snapshots" at ""
    , "releases"  at ""

Then add argonaut as a dependency:

"com.ephox" %% "argonaut" % "4.0" withSources

Future Improvements

  • Use a more appropriate parser library (not Scala parsers) to improve performance and usability.

Copyright 2012 Ephox Pty Ltd

Something went wrong with that request. Please try again.