Vault

SQLite Store

Lightweight SQLite backend using Grove ORM with sqlitedriver.

The SQLite store (store/sqlite) provides a lightweight, embedded backend using the Grove ORM with sqlitedriver. It implements the full store.Store composite interface and is well-suited for single-process deployments, local development, and testing.

Usage

import (
    "github.com/xraph/grove"
    "github.com/xraph/grove/drivers/sqlitedriver"
    "github.com/xraph/vault/store/sqlite"
)

// Open a SQLite connection via Grove's sqlitedriver.
db := grove.Open(sqlitedriver.New("vault.db"))

s := sqlite.New(db)
if err := s.Migrate(ctx); err != nil {
    log.Fatal(err)
}

Options

OptionSignatureDescription
WithLoggerWithLogger(l *slog.Logger) StoreOptionSets the structured logger. Defaults to slog.Default().
s := sqlite.New(db, sqlite.WithLogger(slog.Default()))

Internals

AspectDetail
DriverGrove ORM with sqlitedriver (SQLite)
MigrationsGrove migration orchestrator with programmatic migrations
TransactionsDatabase-level transactions via SQLite

Lifecycle methods

MethodBehaviour
Migrate(ctx)Creates all tables and indexes using the Grove migration orchestrator
Ping(ctx)Calls db.Ping(ctx) to verify connectivity
Close()Calls db.Close() to release the database connection

When to use

  • Local development -- single-file database, no server process required.
  • Testing -- fast, isolated store with no external dependencies.
  • Embedded / single-process -- CLI tools, desktop apps, or edge deployments.
  • CI pipelines -- deterministic tests without a database container.

On this page