github.com/alicebob/sqlittle (go): Package SQLittle provides pure Go, read-only, access to SQLite (version 3) database files.  SQLittle reads SQLite3 tables and indexes. It iterates over tables, and can search efficiently using indexes. SQLittle will deal with all SQLite storage quirks, but otherwise it doesn't try to be smart; if you want to use an index you have to give the name of the index.  There is no support for SQL, and if you want to do the most efficient joins possible you'll have to use the low level code.  Based on https://sqlite.org/fileformat2.html and some SQLite source code reading.  This whole thing is mostly for fun. The normal SQLite libraries are perfectly great, and there is no real need for this. However, since this library is pure Go cross-compilation is much easier. Given the constraints a valid use-case would for example be storing app configuration in read-only sqlite files.  https://godoc.org/github.com/alicebob/sqlittle for the go doc and examples.  See [LOWLEVEL.md](LOWLEVEL.md) about the low level reader. See [CODE.md](CODE.md) for an overview how the code is structured.  Things SQLittle can do:  Things SQLittle should do:  Things SQLittle can not do:  SQLittle has a read-lock on the file during the whole execution of the select-like functions. It's safe to update the database using SQLite while the file is opened in SQLittle.  The current level of abstraction is likely the final one (that is: deal with reading single tables; don't even try joins or SQL or query planning), but the API might still change.
Keywords: go|pure-go|sqlite|sqlite3