External Driver Validation

KoutenDB keeps a manual compatibility gate for the separately maintained Rust, JavaScript/TypeScript, PHP, C++, and Python drivers:

scripts/external_driver_matrix.sh

By default, the script expects the five driver repositories beside the core checkout. KOUTEN_EXTERNAL_DRIVER_ROOT or the language-specific KOUTEN_*_DRIVER_DIR variables can point at another layout. The script does not clone, modify, commit, or publish a driver repository.

Set KOUTEN_EXTERNAL_DRIVER_SUITES=0 to rerun only the shared security/restart matrix while developing the harness. The release gate uses the default value and runs every driver-owned suite.

Matrix

The gate first runs each driver’s own test suite against the current TLS-enabled C ABI or wire server. It then applies the same server-side matrix to all five drivers:

Boundary Verification
Normal path Verified TLS plus username, password, and secret-key authentication performs a JSON write. Driver probes that expose a read path also verify the roundtrip.
Password An incorrect password is rejected.
Secret key An incorrect secret key is rejected.
Certificate authority A certificate signed by a different CA is rejected.
Transport Plaintext is rejected by the TLS listener.
Restart The server reopens the same strong-durability disk-backed store and every driver repeats the verified operation.
Recovery evidence The stopped store passes offline segment verification and retains authentication-failure audit events.

The PHP path uses a uniquely named temporary Docker image because the host does not need to enable PHP FFI globally. The cleanup trap removes that image and all matrix-owned temporary data. The matrix is intentionally outside normal CI.

v0.12 Release Result

The clean v0.12 compatibility run on 2026-08-13 completed every driver-owned suite and every shared security/restart row:

Driver Driver suite Shared TLS/auth/restart matrix
Rust 0.1.6 Passed 7 tests, including v0.12 persistence/maintenance/checkpoint coverage and eager-connect failure semantics. Passed every row.
JavaScript/TypeScript 0.1.5 Passed 3 Node.js tests, including the v0.12 C ABI additions. Passed every row, including CA verification and restart.
PHP 0.1.3 source Passed in the isolated PHP 8.3 FFI image, including the v0.12 C ABI additions. Passed every row, including CA verification and restart.
C++ 0.1.3 Passed from a clean CMake build directory, including the v0.12 C ABI additions. Passed every row, including CA verification and restart.
Python 0.2.1 Passed 12 tests after adopting owner-bearing FWD and routed multi-node BGET. Passed every row, including shared-secret CRUD and restart.

Offline segment verification and persistent authentication-failure audit evidence also passed. This closes the external-driver compatibility gate for the v0.12 release.