The current published version of argonaut is 6.2.2 and is available on https://oss.sonatype.org.
Depending on argonaut with sbt, stable:
"io.argonaut" %% "argonaut" % "6.2.2"
"io.argonaut" %% "argonaut-scalaz" % "6.2.2"
"io.argonaut" %% "argonaut-monocle" % "6.2.2"
"io.argonaut" %% "argonaut-cats" % "6.2.2"
Then checkout the quickstart, the detailed documention and examples, and the scaladocs.
The 6.2.x release supports scala 2.10.*, 2.11.* and 2.12.* with scalaz 7.2.*.
All minor releases (from 6.0 onwards) are binary compatible, i.e. 6.1.x stream are drop in replacements, and the same will be true for 6.2.x, but going from 6.1 to 6.2 _may_ require changes or recompilation.
Release Notes: [6.0] [6.0.1] [6.0.2] [6.0.3] [6.0.4] [6.1-M1] [6.1-M2] [6.1-M3] [6.1-M4] [6.1-M5] [6.1-M6] [6.1] [6.2-M1] [6.2]
Concise Codec Definitions #
import argonaut._, Argonaut._ case class Person(name: String, age: Int, things: List[String]) implicit def PersonCodecJson = casecodec3(Person.apply, Person.unapply)("name", "age", "things")
Rich library for Parsing, Printing, Conversion and Manipulation #
val person = Person("Bam Bam", 2, List("club")) val json: Json = person.asJson val prettyprinted: String = json.spaces2 val parsed: Option[Person] = prettyprinted.decodeOption[Person]
History Preserving Zipper #
val cursor = json.hcursor --\ "field" --\ "nested" --\ "deep" := "new value" val history = cursor.history val updated = -cursor
We have an irc channel on freenode - #argonaut
- IRC Client: irc://freenode.net/#argonaut
- Web Access: http://webchat.freenode.net/?channels=argonaut
Contact one of the developers on twitter:
@dibblego
@seanparsons
Mailing list: argonaut-json on google groups.
You can grab the source code from the github repository at https://github.com/argonaut-io/argonaut
The project is built with sbt. Just run the sbt script in the root of the project:
$ ./sbt compile
All contributions are very welcome. Just fork and create a pull request on github.
To make it easier for us to pull in your changes, try to:
- Make a new pull request for each logical change.
- Make each pull request a single coherent commit. Use
git rebase -i
to squash commits as necessary. - Add tests if you are adding functionality or fixing a bug.
- Run the tests on all versions of scala using
./sbt "+test"
.
Tony Morris
Sean Parsons
YourKit
YourKit is kindly supporting argonaut and other open source projects with its full-featured Java Profiler.
Ephox
Argonaut was orginally conceived, developed and open sourced by Ephox.