Image of the Argo sailing

Basics

Argo is a package for the Racket programming language validating JSON data against a JSON Schema.

If you deal with data in the JSON format and want to check (or ensure) that it adheres to some sensible structural constraints, JSON Schema is a powerful tool to have around. And if you’re using JSON Schema, consider using Argo.

Argo supports the latest JSON Schema (draft 06), including all semantic validation keywords (date-time, email, hostname, ipv4, ipv6, uri, uri-reference, uri-template and json-pointer.

How to install and use

You don’t have to be a Racket programmer to use Argo, but you do need to have Racket on your machine to use Argo.

First, install Racket (click the big Download link).

Second, once you’ve installed Racket, use raco, the standard Racket package manager, like so:

$ raco pkg install argo

To start validating JSON data against schemas, run:

$ raco argo validate schema.json data.json

Supporting Argo

I aim to make Argo the go-to JSON Schema validator for web developers, programmers, and data scientists and engineers. If you’d like to contribute to that goal, or if you just find Argo useful in your work, I’d be happy if you supported Argo development. You’re welcome to make a donation of €5 (or more) using this link:

Bug reports and feature requests

If you find that Argo doesn’t do what you want (feature request)—or if Argo does something wrong that it is supposed to do right (bug)—let me know. I love talking about JSON and Racket. You may reach me at jesse@lisp.sh.

You’re also welcome to submit an issue on GitHub.

Further reading

If you’d like to stay up-to-date with my Racket work, I blog over at lisp.sh. If you’re interested in building web sites or HTTP API services with Racket, you may be interested in my forthcoming ebook, Server: Racket. Or consider subscribing to my Racket newsletter using the form below, where you’ll periodically receive news about my Racket work (including Argo):