Client library compatibility

Connect to Lavik with familiar Redis or Valkey clients. Choose a language, then inspect the tested version, operations and connection settings.

15libraries tested
6languages
18connection profiles
Passed means the listed version and configuration passed its tests; it does not certify every client API. Tests use standalone Lavik, default-user password authentication and plaintext TCP. TLS, Sentinel, cluster routing, pool stress and failover are not verified.
Language / clientVersionConfigurationResult
Python
redis-py
8.1.0RESP2
protocol=2
Passed
Python
redis-py
8.1.0RESP3
protocol=3
Passed
Python
valkey-py
6.1.1RESP2
protocol=2
Passed
Python
valkey-py
6.1.1RESP3
protocol=3
Passed
Python
Valkey GLIDE Python
2.5.2RESP3
ProtocolVersion.RESP3
Passed
Node.js
node-redis
6.2.1RESP2
RESP: 2
Passed
Node.js
node-redis
6.2.1RESP3
RESP: 3
Passed
Node.js
ioredis
6.0.0RESP2
protocol: 2; disconnect()
Passed
Node.js
iovalkey
0.4.0RESP2
protocol: 2; disconnect()
Passed
Node.js
Valkey GLIDE Node.js
2.5.2RESP3
ProtocolVersion.RESP3
Passed
Go
go-redis
v9.22.0RESP3
Protocol: 3
Passed
Go
valkey-go
v1.0.78RESP3
DisableCache: true
Passed
Java
Jedis
7.0.0RESP2
Jedis standalone connection
Passed
Java
valkey-java
5.5.0RESP2
io.valkey.Jedis standalone connection
Passed
Java
Lettuce
7.7.0.RELEASEDefault negotiation
RedisClient standalone connection
Passed
PHP
Predis
v3.6.1RESP2
Predis standalone connection
Passed
PHP
phpredis
5.3.7RESP2
Ubuntu 24.04 PHP extension
Passed
Ruby
redis-rb
5.4.1Default negotiation
Redis standalone connection
Passed

Using these results

Start with the version and settings shown, then run your application tests. Set DisableCache: true with valkey-go because this Lavik release does not implement CLIENT TRACKING. Avoid relying on COMMAND INFO, which was rejected in the command tests.

Each client page lists the operations actually executed. Tests that use a client's raw-command API are labeled. Libraries and features absent from this matrix have not been certified here.

The passing ioredis and iovalkey profiles use disconnect() for cleanup. In separate quit() diagnostics, the call completed but the Node.js process remained alive after 12 seconds; see those client pages for the limitation.

Test environment & reproducible evidence

Verified: 2026-09-21T11:15:27Z · Docker / Linux aarch64 · lavik 0.1.0-beta.1

Storage & connection: io_uring · temporary file, 2 workers, standalone, plaintext TCP, password authentication. This test does not measure NVMe performance.

Pinned source: 3955b98d43b312324aa8d52775df52cfb111c0d0

Binary SHA-256: 8306b37ddf05023f85166a6aa2192b7084757e8defd342b602e6470244aca887

Image: sha256:fd13690a1931b8abb31b1866baa2a08c7c38e6df93aa78883321d1d3c1cddd00

Full test receipt · Executable tests

Client catalog reference: Valkey client libraries. Compatibility results here come from separate tests against Lavik.