Ruvio.

Testing · evidence · next gates

What has been tested

Ruvio has protocol, compatibility, persistence, recovery, client, and runtime-safety checks, plus dated performance measurements. This page separates test coverage from evidence of a recent run—and calls out the production questions that remain open.

Automatic and manual checks are distinct. The short pr-gate.yml runs for pull requests and pushes to main. Extended ci.yml, integration-package, and Pages deployment workflows require manual dispatch. Coverage does not imply a passing run on the current commit.

Explore the evidence

Each topic shows test conditions, measured outcomes, limitations and links to the underlying methodology. These are dated observations—not an all-workloads capacity, durability or compatibility guarantee.

Automated test coverage

AreaWhat is exercisedWhere
Core and portabilityRust unit/integration tests, formatting, Clippy, and store smoke on macOS, Linux, and Windows.ci.yml
Protocol and compatibilityRESP conformance, supported-command differential checks against Redis, compatibility-matrix drift, and multi-shard routing smoke.ci.yml
Persistence and recoveryWAL and snapshot recovery, corruption/checksum rejection, missing segments, TTL restart, backup/restore, and frozen-format compatibility.Release evidence
Clients and integrationsLive-server Rust and .NET client suites; separate integration-package tests and packing.CI · Integration workflow
Runtime safetyRESP parser fuzzing, AddressSanitizer, and selected Miri tests.ci.yml
Supply chainDependency policy, release version checks, SBOM generation, and security-policy checks.ci.yml

Run the tests

Clone the repository and run the portable test entry point from its root. The default runs formatting, all Rust targets, and a store smoke example; resilience scenarios are opt-in.

EnvironmentCore checksOptional resilience checks
macOS / Linux / WSL./scripts/test.sh./scripts/test.sh --native-resilience and ./scripts/test.sh --docker-resilience
Windows PowerShell.\scripts\test.ps1.\scripts\test.ps1 -NativeResilience and .\scripts\test.ps1 -DockerResilience

Clippy is opt-in with --clippy or -Clippy. Docker tests require Docker Engine with Linux containers and tmpfs support. For WSL filesystem tests, keep the checkout and data under the Linux filesystem rather than /mnt/c. See the full test guide for prerequisites and limitations.

Docker resilience run · 2026-10-03

All five manual scenarios passed on Docker Engine 29.8.0, Linux/aarch64, using image ruvio:resilience-test (sha256:56dcb352…).

tmpfs ENOSPC9,216 / 9,216acknowledged writes recovered
WAL permission denial3 / 3acknowledged writes recovered
Process SIGKILL100 / 100acknowledged writes recovered
Replica catch-up / promotion200 / 200keys present after promotion · 0.371 s catch-up

The 30-second mixed SET/GET/INCR soak completed 48,413 iterations (145,239 commands). Mutations during the injected filesystem failures returned MISCONF; after the fault was removed and Ruvio restarted, acknowledged keys were verified. Scenario details and rerun instructions.

These tests cover process and filesystem behavior inside a Linux container. They do not simulate host power loss or prove physical storage flush semantics. Docker Desktop's Linux VM is not bare-metal evidence. Docker's filesystem faults have not been run against a native macOS filesystem.

Native crash recovery · macOS · 2026-10-03

On an Apple M4 Pro, three randomized process kills during concurrent writes passed for each WAL durability profile. Recovery preserved a continuous key prefix and every client-observed acknowledged write.

ProfileTrialsRecovered keysAcknowledged writes
everysec3 / 3 passed297, 576, 810All preserved
always3 / 3 passed592, 621, 320All preserved

This is native process-crash evidence, not host power-loss or physical-device testing. Native macOS disk-full and permission-denial scenarios remain untested.

Performance and memory evidence

The public 17-command Redis comparison and one-million-string and equal-pass memory probes show the 2026-10-07 conditions, numbers, limits and downloadable raw JSON on this site; a GitHub account or repository access is not needed to read them. Other dated records include Docker Desktop workloads and a Cherry EPYC 7313P Linux run. Laptop and Docker results are not production-hardware claims.

Still needed for production confidence

Use the testing evidence guide and release gates to track these as the test plan grows.