中文 | English
纯 Go 实现的 Cloud Backed SQLite,提供标准 database/sql 驱动,支持本地文件、内存数据库,以及 S3/文件系统容器。项目保持 SQLite 文件格式兼容,并通过 OCC、WAL 和块存储支持云端数据库场景。
import (
"database/sql"
_ "github.com/eslizn/cbs"
)
db, err := sql.Open("sqlite", ":memory:")
if err != nil {
panic(err)
}
defer db.Close()
_, err = db.Exec("CREATE TABLE users(id INTEGER PRIMARY KEY, name TEXT)")
_, err = db.Exec("INSERT INTO users(name) VALUES(?)", "alice")常用 DSN:
/path/to/file.db 本地 SQLite 文件
:memory: 内存数据库
s3:///path/to/container?db=name&mode=rw 本地目录容器
s3://key:secret@s3.region.amazonaws.com/bkt?db=name S3 容器
s3:///path/to/container?db=name&daemon=/path/to/cache daemon 只读容器
启动共享缓存 daemon:
cbs daemondaemon 默认使用系统临时目录下的 cbs-daemon 子目录,也可以通过 --cache-dir 显式指定共享缓存目录。
直接执行 cbs 默认使用 :memory:;也可以通过 -s/--source 指定路径或 DSN。进入交互式 SQL 模式后按 Tab,可补全 SQL 关键字、表名、列名和 dot 命令。
完整 DSN 参数、错误处理和使用示例见使用说明。
go build ./...
go test ./... -count=1
go vet ./...