Package: wnpp
Severity: wishlist
Owner: Simon Josefsson <simon@josefsson.org>
* Package name : golang-github-zombiezen-go-sqlite
Version : 1.4.2-1
Upstream Author : Roxy Light
* URL : https://github.com/zombiezen/go-sqlite
* License : ISC
Programming Lang: Go
Description : Low-level Go interface to SQLite 3
zombiezen.com/go/sqlite
.
Go Reference (https://pkg.go.dev/zombiezen.com/go/sqlite)
.
This package provides a low-level Go interface to SQLite 3
(https://sqlite.org/). It is a fork of crawshaw.io/sqlite
(https://github.com/crawshaw/sqlite) that uses modernc.org/sqlite
(https://pkg.go.dev/modernc.org/sqlite), a CGo-free SQLite package. It
aims to be a mostly drop-in replacement for crawshaw.io/sqlite.
.
This package deliberately does not provide a database/sql driver. See
David Crawshaw's rationale (https://crawshaw.io/blog/go-and-sqlite) for an
in-depth explanation. If you want to use database/sql with SQLite without
CGo, use modernc.org/sqlite directly.
.
Features
.
* Full SQLite functionality via modernc.org/sqlite,
an automatically generated translation of the original C source code of
SQLite into Go
* Builds with CGO_ENABLED=0,
allowing cross-compiling and data race detection
* Allows access to SQLite-specific features
like blob I/O (https://pkg.go.dev/zombiezen.com/go/sqlite#Blob) and
user-defined functions
(https://pkg.go.dev/zombiezen.com/go/sqlite#Conn.CreateFunction)
* Includes a simple schema migration package
(https://pkg.go.dev/zombiezen.com/go/sqlite/sqlitemigration)
* Utilities for running embedded SQL scripts
(https://pkg.go.dev/zombiezen.com/go/sqlite/sqlitex#ExecScriptFS) using
the
Go 1.16 embedding feature (https://pkg.go.dev/embed)
* A go fix-like tool (/cmd/zombiezen-sqlite-migrate/README.md) for
migrating existing code using
crawshaw.io/sqlite
* A simple REPL (https://pkg.go.dev/zombiezen.com/go/sqlite/shell) for
debugging
.
Install
.
go get zombiezen.com/go/sqlite
.
While this library does not use CGo, make sure that you are building for
one of the supported architectures
(https://pkg.go.dev/modernc.org/sqlite#hdr-
Supported_platforms_and_architectures).
.
Getting Started
.
import (
"fmt"
.
"zombiezen.com/go/sqlite"
"zombiezen.com/go/sqlite/sqlitex"
)
.
// ...
.
// Open an in-memory database.
conn, err := sqlite.OpenConn(":memory:", sqlite.OpenReadWrite)
if err != nil {
return err
}
defer conn.Close()
.
// Execute a query.
err = sqlitex.ExecuteTransient(conn, "SELECT 'hello, world';",
&sqlitex.ExecOptions{
ResultFunc: func(stmt *sqlite.Stmt) error {
fmt.Println(stmt.ColumnText(0))
return nil
},
})
if err != nil {
return err
}
.
If you're creating a new application, see the package examples
(https://pkg.go.dev/zombiezen.com/go/sqlite#pkg-examples) or the
reference docs (https://pkg.go.dev/zombiezen.com/go/sqlite).
.
If you're looking to switch existing code that uses crawshaw.io/sqlite,
take a look at the migration docs (/cmd/zombiezen-sqlite-
migrate/README.md).
Used by litetlog, see: https://github.com/FiloSottile/torchwood/issues/27
https://salsa.debian.org/go-team/packages/golang-github-zombiezen-go-sqlite
https://salsa.debian.org/jas/golang-github-zombiezen-go-sqlite/-/pipelines
/Simon
Attachment:
signature.asc
Description: PGP signature