Awesome
Argonaut
Argonaut is a collection of libraries for working with JSON in PureScript. This library bundles together the following:
- purescript-argonaut-core provides basic parsing, printing, folding and types for
Json
. - purescript-argonaut-codecs provides codecs based on
EncodeJson
andDecodeJson
type classes (along with instances for common data types) and combinators for encoding and decodingJson
values. - purescript-argonaut-traversals defines prisms, traversals, zippers, and
JCursor
for theJson
type.
Installation
Install argonaut
with Spago:
spago install argonaut
You can also install Argonaut libraries individually (for example, by only installing argonaut-core
for the Json
type).
Quick start
This library bundles together several other libraries. We recommend checking out the quick starts for those libraries depending on which use case you're looking for:
- To learn more about the basic data types and parsing functions in Argonaut, see purescript-argonaut-core.
- To learn more about encoding and decoding PureScript types to and from
Json
using type classes, see purescript-argonaut-codecs. - To learn more about encoding and decoding PureScript types to and from
Json
using profunctors, see purescript-codec-argonaut. - To learn more about manipulating
Json
using optics andJCursor
, see purescript-argonaut-traversals
Documentation
argonaut
documentation is stored in a few places:
- Module documentation is published on Pursuit.
- Written documentation is kept in the docs directory.
- Usage examples can be found in the test suite.
If you get stuck, there are several ways to get help:
- Open an issue if you have encountered a bug or problem.
- Ask general questions on the PureScript Discourse forum or the PureScript Discord chat.
Contributing
You can contribute to argonaut
in several ways:
-
If you encounter a problem or have a question, please open an issue. We'll do our best to work with you to resolve or answer it.
-
If you would like to contribute code, tests, or documentation, please read the contributor guide. It's a short, helpful introduction to contributing to this library, including development instructions.
-
If you have written a library, tutorial, guide, or other resource based on this package, please share it on the PureScript Discourse! Writing libraries and learning resources are a great way to help this library succeed.