SQLite-specific DALgo driver. Wraps github.com/dal-go/dalgo2sql to provide the dal.DB surface, and adds SQLite-native implementations of:
dbschema.Adapter— schema introspection viasqlite_masterandpragma_table_infoddl.Applier— SQLite-flavoredCREATE TABLE/CREATE INDEX/DROP TABLEetc.dal.ConcurrencyAware— advertisesConcurrency() = 1for write paths (SQLite is single-writer)
Used by consumers (e.g. datatug-cli's db copy) that need schema-modification and concurrency hints through the unified DALgo abstraction without hand-rolling engine-specific SQL.
We build with our own tooling:
- SpecScore — specify requirements as
SpecScore.mdartifacts - SpecStudio — author & manage specs across their lifecycle
- inGitDB — store structured data in Git where applicable
- DALgo — data access layer for Go
- cover100.dev — drive toward 100% test coverage
- DataTug — query & explore data
This package uses modernc.org/sqlite — a pure-Go transpilation of the
SQLite C library — instead of the former github.com/mattn/go-sqlite3 cgo
binding. The migration was done because:
- The cgo driver required a C toolchain in every build environment (CI, containers, cross-compilation targets).
- It prevented single static binaries for downstream consumers such as
datatug-cli. modernc.org/sqliteexposes the samedatabase/sqlinterface (driver name"sqlite"instead of"sqlite3"), sodalgo2sqlcontinues to work unchanged.- All existing SQLite features relied on here —
sqlite_masterintrospection,PRAGMAtable/index queries, transactional DDL — behave identically under the pure-Go driver.
The cgo_enabled: true flag can be removed from this repo's CI workflow and
from any downstream workflow that no longer needs cgo for other reasons.