GitHub - ncruces/go-sqlite3: 使用 wazero 的 Go 语言对 SQLite 的绑定

  • 主要观点:介绍了使用 wazero 的 Go 到 SQLite 的绑定,提供了database/sql兼容的驱动和对 C SQLite API 的直接访问,包裹了 Wasm 构建的 SQLite 并使用 wazero 作为运行时,有多种高级功能和测试覆盖,同时存在一些注意事项和替代方案。
  • 关键信息

    • Go 模块github.com/ncruces/go-sqlite3cgo免费的 SQLite 包装器。
    • 包含多种包,如github.com/ncruces/go-sqlite3driverembed等。
    • 有增量 BLOB I/O、嵌套事务等高级功能。
    • 注意事项包括使用纯 Go VFS 实现的优缺点和内存使用较高。
    • 测试涵盖多种操作系统和 CPU 组合,Go VFS 通过运行 mptest 测试。
    • database/sql驱动性能有竞争力,Wasm 和 VFS 层通过运行 speedtest1 测试。
    • 模块在多线程模式下是 goroutine-safe 的,database/sqlAPI 可安全并发使用。
    • 有 FAQ、讨论、问题追踪等渠道,以及多种替代方案。
  • 重要细节

    • 导入相关包的示例:import "database/sql"; import _ "github.com/ncruces/go-sqlite3/driver"; import _ "github.com/ncruces/go-sqlite3/embed"
    • 各种高级功能的示例代码位置,如github.com/ncruces/go-sqlite3/ext/blobio#example-package等。
    • 测试的操作系统和 CPU 组合列表。
    • 替代方案的具体包名,如modernc.org/sqlite等。
阅读 23
0 条评论