A Go framework for writing SQLite virtual tables -- the SQLite equivalent of PostgreSQL's foreign data wrappers. You implement one small Go interface describing your data source, and the framework wires it into SQLite as a queryable table.
SQLite's virtual table API is genuinely useful, but its C interface is fiddly -- and every Go SQLite library exposes a slightly different Go wrapper for it. The goal here is one interface to implement once, and a trivial path to integrate it with whichever SQLite library you're already using -- including as a loadable .so extension for the upstream sqlite3 binary.
Each backend is a separate Go module, so you only pull in the SQLite library you actually use:
github.com/values-conflict/go-sqlite-fdw/modernc--modernc.org/sqlite(pure Go, no CGo)github.com/values-conflict/go-sqlite-fdw/zombiezen--zombiezen.com/go/sqlite(pure Go, no CGo -- wrapsmodernc.org/sqlite)github.com/values-conflict/go-sqlite-fdw/ncruces--github.com/ncruces/go-sqlite3(no CGo, WASM-based)github.com/values-conflict/go-sqlite-fdw/loadext-- loadable.soextension (CGo, forSELECT load_extension(...)with the upstreamsqlite3binary)