-
-
Notifications
You must be signed in to change notification settings - Fork 31
Support matrix
Nuno Cruces edited this page May 19, 2026
·
1 revision
The following configurations are tested in CI.
| GOOS | GOARCH | Tags | File locks | Shm WAL |
|---|---|---|---|---|
| linux | amd64 | π’ | π’ | |
| linux | arm64 | π’ | π’ | |
| linux | 386 | π’ | π’ | |
| linux | arm | π’ | π’ | |
| linux | riscv64 | π’ | π’ | |
| linux | loong64 | π’ | π’ | |
| linux | ppc64le | π’ | π’ | |
| linux | s390x | π’ | π | |
| darwin | arm64 | π’ | π’ | |
| darwin | amd64 | π’ | π’ | |
| windows | amd64 | π’ | π‘ | |
| windows | arm64 | π’ | π‘ | |
| freebsd | amd64 | π‘ | π’ | |
| freebsd | arm64 | π‘ | π’ | |
| netbsd | amd64 | π‘ | π’ | |
| netbsd | arm64 | π‘ | π’ | |
| openbsd | amd64 | π‘ | π’ | |
| illumos | amd64 | π‘ | π’ | |
| dragonfly | amd64 | π‘ | π’ | |
| darwin | arm64 | sqlite3_flock | π‘ | π’ |
| darwin | arm64 | sqlite3_dotlk | π | π |
| linux | amd64 | sqlite3_flock | π | π’ |
| linux | amd64 | sqlite3_dotlk | π | π |
| solaris | amd64 | sqlite3_dotlk | π | π |
| wasip1 | wasm | sqlite3_dotlk | π | π |
The following configurations are not tested but are expected to work.
| GOOS | GOARCH | Tags | File locks | Shm WAL |
|---|---|---|---|---|
| windows | 386 | π’ | π‘ | |
| linux | other | π’ | π | |
| other | other | π΄ | π΄ | |
| any | any | sqlite3_dotlk | π | π |
You need a working Go toolchain.
These customize the Go SQLite VFS.
Use vfs.SupportsFileLocking
to check if your build supports file locking:
- π’ full support
- π‘ reduced concurrency:
BEGIN IMMEDIATEbehaves likeBEGIN EXCLUSIVE(docs) - π incompatible locking: accessing databases concurrently with other SQLite libraries risks data corruption
- π΄ no support:
can only open databases with
nolock=1(orimmutable=1); WAL mode not supported
Use vfs.SupportsSharedMemory
to check if your build supports shared memory:
- π’ full support
- π‘ reduced performance: memory sharing through copying, which reduces performance under write-heavy workloads
- π in-process:
WAL databases can only be accessed by a single proccess; other processes fail with
SQLITE_PROTOCOL,SQLITE_IOERR, orSQLITE_CANTOPEN - π΄ no support:
can only open WAL databases with
EXCLUSIVElocking mode