Add portable Windows, macOS, and Android backend support - #899
Open
amachado-pie wants to merge 12 commits into
Open
Add portable Windows, macOS, and Android backend support#899amachado-pie wants to merge 12 commits into
amachado-pie wants to merge 12 commits into
Conversation
amachado-pie
force-pushed
the
cross-portable
branch
from
July 4, 2026 17:52
715f71a to
beb04bf
Compare
amachado-pie
force-pushed
the
cross-portable
branch
from
August 13, 2026 18:04
beb04bf to
cd07bbb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR refactors dqlite's Linux-specific paths into selectable portable backends so the project can build and validate on Windows, macOS, and Android while retaining optimized Linux backend options.
Summary
--with-vfs-shm=auto|linux-remap|portable--with-raft-io=auto|portable|linux-kaiouv_fs_write/uv_fs_closealigned_alloc().qsort_r.Validation performed
make check: 7/7 test programs passing.make check: 7/7 test programs passing.integration-test.exenon-stress: 127/127 passing, 1 skipped.integration-test.exe stress/read_write: 45/45 passing, 3 skipped.unit-test.exe: 75/75 passing, 3 skipped.raft-core-unit-test.exe: 135/135 passing.raft-core-integration-test.exe: 191/191 passing, 3 skipped.raft-uv-unit-test.exe: 20/20 passing, 61 skipped.raft-uv-integration-test.exe: 213/213 passing, 25 skipped.raft-core-fuzzy-test.exe: 57/57 passing.make check: 7/7 test programs passing.integration-test: 170/170 passing, 4 skipped.raft-uv-unit-test: 24/24 passing, 57 skipped.raft-uv-integration-test: 220/220 passing, 22 skipped.raft-core-fuzzy-test: 57/57 passing.27.2.12479018, API 24:arm64-v8a:libdqlite.labuilds successfully.armeabi-v7a:libdqlite.labuilds successfully.git diff --checkpasses.Benchmark notes
The portable
stress/read_writebenchmark was recorded for Linux portable, Windows/Wine portable, and native macOS portable builds using seed0x5eed1234, one warmup iteration, and 10 measured iterations.writers=0 readers=16 databases=1writers=1 readers=4 databases=1writers=4 readers=0 databases=1These numbers are intended as cross-platform validation data, not direct hardware or native Windows performance rankings.
Known follow-up