You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
libSQL is an open source, open contribution fork of SQLite.
This source repository contains libSQL API bindings for Go.
Notice
This package comes with a precompiled native libraries.
Currently only linux amd64, linux arm64, darwin amd64 and darwin arm64 are supported.
We're working on adding support for more platforms.
Features
In-memory databases and local database files, like SQLite
Remote database access to libSQL server
In-app replica that syncs with a libSQL server
Installing
go get github.com/tursodatabase/go-libsql
go-libsql uses CGO to make calls to LibSQL. You must build your binaries with CGO_ENABLED=1.
Getting Started
Connecting to the database
To connect to the database one needs to create a libsql.Connector using one of the factory functions: libsql.NewEmbeddedReplicaConnector or libsql.NewEmbeddedReplicaConnectorWithAutoSync.
Here's an example of obtaining a sql.DB object from database/sql package:
dbPath := // Path do db file on local disk
primaryUrl := // URL to primary database instance
connector := NewEmbeddedReplicaConnector(dbPath, primaryUrl, authToken)
db := sql.OpenDB(connector)
defer db.Close()
Once sql.DB object is created one can use it as any other database that supports database/sql package.
Fetching updates from primary database instance
If the connector is created with libsql.NewEmbeddedReplicaConnectorWithAutoSync then it will automatically fetch updates from a primary periodically.
For connectors created with libsql.NewEmbeddedReplicaConnector we need to fetch updates manually by calling connector.Sync
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in libSQL by you, shall be licensed as MIT, without any additional
terms or conditions.