Support matrix (original) (raw)

Tested configurations

The following configurations are tested in CI.

GOOS GOARCH Tags Compiler File locks Shm WAL
linux amd64 🟢 🟢 🟢
linux arm64 🟢 🟢 🟢
linux 386 🔴 🟢 🟢
linux arm 🔴 🟢 🟢
linux riscv64 🔴 🟢 🟢
linux ppc64le 🔴 🟢 🟢
linux loong64 🔴 🟢 🟢
darwin arm64 🟢 🟢 🟢
darwin amd64 🟢 🟢 🟢
windows amd64 🟢 🟢 🟡
windows arm64 🟢 🟢 🟡
freebsd amd64 🟢 🟡 🟢
freebsd arm64 🟢 🟡 🟢
netbsd amd64 🟢 🟡 🟢
netbsd arm64 🟢 🟡 🟢
openbsd amd64 🔴 🟡 🟢
dragonfly amd64 🟢 🟡 🟢
illumos amd64 🟢 🟡 🟢
darwin arm64 sqlite3_flock 🟢 🟡 🟢
darwin arm64 sqlite3_dotlk 🟢 🟠 🟠
linux amd64 sqlite3_flock 🟢 🟠 🟢
linux amd64 sqlite3_dotlk 🟢 🟠 🟠
linux s390x sqlite3_dotlk 🔴 🟠 🟠
wasip1 wasm sqlite3_dotlk 🔴 🟠 🟠
solaris amd64 sqlite3_dotlk 🟢 🟠 🟠

Other configurations

The following configurations are not tested but are expected to work.

GOOS GOARCH Tags Compiler File locks Shm WAL
windows 386 🔴 🟢 🟡
linux other 🔴 🟢 🔴
any any 🔴 🔴 🔴
any any sqlite3_dotlk 🔴 🟠 🟠

GOOS and GOARCH

You need a working Go toolchain.

Build tags

These customize the Go SQLite VFS.

Compiler

We automatically use wazero's:

The interpreter is significantly slower (but the compiler introduces startup latency).
Use wazero.NewRuntimeConfigInterpreter() to always use the interpreter.

File locking

Use vfs.SupportsFileLockingto check if your build supports file locking:

Shared memory WAL

Use vfs.SupportsSharedMemoryto check if your build supports shared memory: