[API libraries] Go/Golang API bindings package

I couldn’t find any obvious Go package for WaniKani’s API, so I made one over the holidays. It’s been in a state of flux for the last few weeks, but now stabilized enough to be ready for some external use. Here it is on GitHub along with documentation:

Some features:

  • Pagination helpers.
  • Pluggable logging.
  • Conditional requests (If-Modified-Since and If-None-Match).
  • Configurable automatic retries with exponential backoff/jitter on network errors.
  • Go context support.
  • No non-test dependencies aside from Go’s standard library.

It was a pleasure in general working with WaniKani’s API, which is very well designed. I blogged a little more about the implementation here.

I don’t expect that very many people are going to have an immediate use for this, but hopefully it helps someone in the future. Personally, I’m writing a bot that periodically emails me my worst-performing reviews.