-
-
Notifications
You must be signed in to change notification settings - Fork 15
Test matrix
Nuno Cruces edited this page Nov 12, 2024
·
2 revisions
The following configurations are tested in CI.
GOOS | GOARCH | Tags | Compiler | File locks | Shm WAL |
---|---|---|---|---|---|
linux | amd64 | ✅ | ✅ | ✅ | |
linux | arm64 | ✅ | ✅ | ✅ | |
linux | riscv64 | ❌ | ✅ | ✅ | |
linux | ppc64le | ❌ | ✅ | ✅ | |
linux | 386 | ❌ | ✅ | ✅ | |
darwin | arm64 | ✅ | ✅ | ✅ | |
darwin | amd64 | ✅ | ✅ | ✅ | |
windows | amd64 | ✅ | ✅ | ✅ | |
freebsd | amd64 | ✅ | 🟡 | 🟡 | |
openbsd | amd64 | ❌ | 🟡 | 🟡 | |
netbsd | amd64 | ❌ | 🟡 | 🟡 | |
dragonfly | amd64 | ❌ | 🟡 | 🟡 | |
illumos | amd64 | ❌ | 🟡 | 🟡 | |
darwin | arm64 | sqlite3_flock | ✅ | 🟡 | 🟡 |
darwin | arm64 | sqlite3_dotlk | ✅ | 🟡 | |
linux | amd64 | sqlite3_dotlk | ✅ | 🟡 | |
solaris | amd64 | sqlite3_dotlk | ❌ | 🟡 | |
linux | s390x | sqlite3_dotlk | ❌ | 🟡 | |
linux | amd64 | sqlite3_nosys | ✅ | ❌ | ❌ |
Require Go toolchain support.
These customize the Go SQLite VFS.
Requires wazero support:
- ✅ compiler supported
- ❌ interpreter only
The interpreter is significantly slower (but the compiler introduces startup latency).
Use vfs.SupportsFileLocking
to check if your build supports file locking:
- ✅ full support
- 🟡 reduced concurrency:
BEGIN IMMEDIATE
behaves likeBEGIN EXCLUSIVE
(docs) ⚠️ incompatible locking: accessing databases concurrently with other SQLite libraries will eventually corrupt data- ❌ 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
- 🟡 in-process:
WAL databases can only be accessed by a single proccess; other processes may fail with
SQLITE_PROTOCOL
- ❌ no support:
can only open WAL databases with
EXCLUSIVE
locking mode