-
-
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