Categorygithub.com/superfly/litefs-go
modulepackage
0.0.0-20230914211438-bcdba8bfde62
Repository: https://github.com/superfly/litefs-go.git
Documentation: pkg.go.dev

# README

LiteFS Go Library Go Reference

This Go library is for interacting with LiteFS features that cannot be accessed through the typical SQLite API.

Halting

LiteFS provides the ability to halt writes on the primary node in order that replicas may execute writes remotely and forward them back to the primary. This isn't necessary in most usage, however, it can make running migrations simpler.

Write forwarding from the replica is much slower than executing the write transaction directly on the primary so only use this for migrations or low-write scenarios.

// Initialize the database.
db, err := sql.Open("sqlite3", "/litefs/my.db")
if err != nil {
	return err
}
defer db.Close()

// Execute a write transaction from any node.
// If this is a replica, it will run the inner function with the HALT lock.
if err := litefs.WithHalt("/litefs/my.db", func() error {
	_, err := db.Exec(`CREATE TABLE users (id INTEGER PRIMARY KEY, name string)`)
	return err
}); err != nil {
	return err
}

# Functions

Halt locks the HALT lock on the file handle to the LiteFS database lock file.
Lag reports the how far this node is lagging behind the primary.
Unhalt releases the HALT lock on the file handle to the LiteFS database lock file.
WithHalt executes fn with a HALT lock.

# Constants

No description provided by the author
No description provided by the author
No description provided by the author
Open file description lock constants.
Open file description lock constants.
Open file description lock constants.
LiteFS lock offsets.

# Variables

DefaultClient is a client for communicating with the default (localhost:20202) LiteFS node.
No description provided by the author
No description provided by the author

# Structs

Client is an HTTP client for communicating with a LiteFS node.
Event represents a generic event.
No description provided by the author
No description provided by the author
No description provided by the author

# Interfaces

EventSubscription monitors a LiteFS node for published events.
PrimaryMonitor monitors the current primary status of the LiteFS cluster.