Skip to content

Commit

Permalink
update READM
Browse files Browse the repository at this point in the history
  • Loading branch information
tonymorris committed Jun 28, 2012
1 parent bd4c42b commit ade136d
Showing 1 changed file with 11 additions and 9 deletions.
20 changes: 11 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
## Argonaut
# Argonaut

#### What is Argonaut?
### 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](http://www.opensource.org/licenses/BSD-3-Clause).

#### Future Improvements
### Features

* Exploit lenses and partial lenses for a more complete and general combinator library.
* Implement a zipper for traversing the JSON data structure.
* Implement a traversal cursor function that tracks its operations using the Writer monad.
* Use a more appropriate parser library (not Scala parsers) to improve performance.
* Implement automated tests for type-class laws (e.g. `ToJson` is the inverse of `FromJson`).
* Lenses are 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.

***
### Future Improvements

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

**Copyright 2012 Ephox Pty Ltd**

0 comments on commit ade136d

Please sign in to comment.