Use SQLite for IO internal storage and general data persistence.
Since 74e28ed, IO has used SQLite for persistent in-application data storage.
Pros#
- SQLite is well-supported in Go.
- The sqlite3 command-line tool makes it easy to inspect and patch IO storage.
- Familiarity: everybody knows SQLite.
Cons#
- SQLite is a bit low-level and popular wrappers (like GORM) seem too heavy.
- Go support for SQLite is a bit weird. Go programs either take a dependency on CGO or use a Go version of SQLite that is automatically-generated from a translation of the SQLite C source code. For more info, start here.