Skip to content

gosqlite documentation

gosqlite.org is a CGo-free SQLite driver + ecosystem for Go — a drop-in replacement for mattn/go-sqlite3 and modernc.org/sqlite, with first-class typed APIs for vector search, full-text search, encryption at rest, in-memory MVCC, hybrid ranking, a user-implementable VFS, a bounded page cache, and a catalog of loadable Go SQL extensions — all in one project, all pure Go. Encryption (vfs/crypto), a compressed + encrypted container (vfs/vault), blob storage (blobstore), and the glebarez/sqlite-compatible gorm dialector (gosqlite.org/gorm) are opt-in companion modules in the same repo, released together.

The README is the high-level landing page. These docs are the deep reference.

Declarative models with native search — LiteORM. Built on this driver, its SQLite vector / full-text / hybrid search runs directly on vec / fts / fusion, and encryption on vfs/crypto. Declare vec: / fts: indexes, AutoMigrate, and search with typed search.For[T] helpers. See the skill and the runnable examples/liteorm/.

  • Getting started — install, your first query, and choosing a driver name.
  • Migrating — drop-in recipes from mattn / modernc / glebarez / gorm.io/driver/sqlite / ncruces.
  • Configurationsqlite.Config, typed pragmas, open shortcuts.
Area Pages
Search Vector search · Full-text search · Hybrid search
ORMs LiteORM — declarative models with native vector / full-text / hybrid search on this driver · gorm dialector · xorm — works as-is via xorm.NewEngine("sqlite3", dsn)
Storage / VFS vault container · Encryption · Checksums · In-memory & embedded · Custom VFS · Page cache · Blob storage · Compressed databases
Driver capabilities Hooks & introspection · Sessions / changesets · Window functions & UDFs · sqlitex helpers · Observability

The loadable ext/ catalog: overview · scalars & aggregates · virtual tables · stores.

Driver names · DSN flags · Build tags · Limits · Performance · Supported Go · SQLite version

The Go API reference (every type and function) is on pkg.go.dev. AI agents integrating the package should look at the skills/ folder.