Reference sqrail docs

Markdown

Platform support

Release targets, support tiers, filesystem semantics, and the exact meaning of tested support.

sqrail’s portable contract is the same on supported operating systems. A platform is called supported only after the bundled build, unit tests, Unicode-path end-to-end tests, interruption cleanup, no-overwrite race, install layout, and release packaging all pass on that target.

Tiers

Tier Target CI runner Release archive
1 Linux x86-64 Ubuntu 24.04 x64 .tar.gz
1 Linux Arm64 Ubuntu 24.04 Arm64 .tar.gz
1 macOS x86-64 macOS 15 Intel .tar.gz
1 macOS Arm64 macOS 15 Arm64 .tar.gz
1 Windows x86-64 Windows 2025 x64 .zip
1 preview Windows Arm64 Windows 11 Arm64 public-preview runner .zip
2 Linux/macOS with a packaged DuckDB shared library Ubuntu 24.04 and macOS 15 distribution-owned

Windows Arm64 remains preview until GitHub’s hosted runner is generally available and repeated release builds establish equivalent reliability. Other POSIX systems and other C++20 toolchains may build from source, but are best-effort until they have a maintained CI lane. No FreeBSD, musl, 32-bit, or big-endian release artifact is currently claimed.

Filesystem and process semantics

  • POSIX output files use owner read/write permissions and spill workspaces use owner-only directory permissions.
  • Windows output files and spill workspaces receive a protected DACL granting the current user full access without inherited access rules.
  • POSIX commits use a same-directory hard link followed by removal of the private temporary name. Filesystems without hard-link support fail closed.
  • Windows commits use a no-replace, write-through move.
  • Windows binaries opt into UTF-8 process paths and long-path awareness.
  • SIGINT/SIGTERM are supported on POSIX. Windows console Ctrl+C and Ctrl+Break are translated to the same structured interruption path.

Network filesystems can weaken durability or atomicity guarantees despite successful system calls. Release tests cover the hosted runner’s local filesystem; applications requiring crash-consistent remote storage should stage to local disk and copy the completed artifact separately.

What “tested” means

The repository defines the matrix, but a local checkout alone cannot prove every target. Before a release tag, all six bundled lanes, the system-DuckDB lanes, Clang static analysis, ASan/UBSan, ThreadSanitizer, both fuzz targets, and package reproducibility checks must be green for the exact commit. A signed annotated tag then rebuilds and attests each archive.