I have officially released ebird-haskell: a set of libraries and tools for working with eBird data in Haskell. Specifically, there are three components:
- ebird-api: A library that provides a complete description of the public eBird API as a servant API type. It also provides types for the litany of values that the eBird API communicates in, and convenient instances and functions for operating on those types.
- ebird-client: A library that provides functions for querying any endpoint of the eBird API, based on the description in the ebird-api library.
- ebird-cli: An executable command-line utility that can query any endpoint of the eBird API and pretty-print the response data.
This post serves as announcement of these tools (a “call for users”, if you will) and an informal tutorial to help birders turned Haskell programmers or Haskell programmers turned birders get started.