[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1111263: ITP: golang-github-zombiezen-go-sqlite -- Low-level Go interface to SQLite 3



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


Reply to: