Engula Client Compatibility Guide

Engula is designed as a "drop-in" replacement for Valkey/Redis 7.2, with the goal of letting applications and client libraries connect seamlessly without breaking Redis ecosystem interoperability. This guide explains to developers what compatibility means, the range of verified clients, and how to ensure consistent behavior after migration.

Protocol and API Compatibility

  • Protocol support: Engula aligns with RESP2 and RESP3, covering the Valkey/Redis 7.2 mainline command surface; public verification is available at /proof-live.
  • Zero code changes: Applications already using Redis/Valkey 7.2 can typically connect to Engula without modifying code or configuration.
  • Engula extensions: Some Engula enhancements may not run on native Redis/Valkey; if you need portability, avoid calls outside the Redis/Valkey 7.2 command surface.

Ecosystem Consistency

Engula closely aligns with the semantics and behavior of Valkey/Redis 7.2, including:

  • Core commands: CRUD, key management, and various data structure operations
  • Cluster mode: slot management, topology updates, and redirection semantics
  • Pub/Sub and Streams: consistent message dispatch and consumer group behavior
  • Transactions and scripting: identical atomicity, isolation, and execution semantics

Any observable differences are documented and, where feasible, fixed for compatibility to guarantee predictable Redis behavior consistency.

Client Libraries

Because Engula aligns with the protocol and API of Valkey/Redis 7.2, any client that supports Redis OSS 7.2 or Valkey 7.2 and above can generally interoperate directly with Engula.

These directories list the mainstream clients for each language along with their feature support (for example, read-from-replica, smart backoff, client-side caching, etc.). As long as a client can correctly connect to Valkey or Redis 7.2, it can usually connect to Engula in the same way.

Advanced Client Features

Engula supports the advanced client behaviors defined by Valkey/Redis 7.2. As long as you use standard protocol commands, the following capabilities generally interoperate:

  • Read from Replica: read from replica nodes to distribute load
  • Cluster-Aware SCAN: seamless scanning across cluster nodes
  • Client-Side Caching: cache consistency based on server-assisted invalidation
  • Persistent connection pools: reuse connections to improve performance

Tip: Some features require enabling a configuration or runtime switch on the client side. Refer to the documentation of your specific client for setup; Engula provides the corresponding server-side capability support.

Officially Verified Clients

Engula continuously verifies compatibility with mainstream Redis/Valkey clients in its CI pipeline. Although almost all Redis/Valkey 7.2-compatible clients should work, the following clients have been explicitly verified:

Language Commonly Verified Clients
Go go-redis, valkey-go
Java jedis, valkey-java, redisson
JavaScript / TypeScript node-redis, iovalkey
Python redis-py, valkey-py
PHP phpredis, predis

If the client you use is not on the list but claims to support Valkey/Redis 7.2, it should generally work as well. If you encounter unexpected behavior, please report it to us so we can evaluate it and add it to the verification coverage set.

Migration Recommendations

Migrating from Valkey/Redis 7.2 to Engula is generally very straightforward:

  1. Keep the same connection configuration (authentication, TLS, timeouts, connection pools, etc.).
  2. Upgrade your client version promptly to get the latest fixes related to Redis/Valkey 7.2 semantics.
  3. Enable features per the client documentation, such as client-side caching, read-from-replica, or Pub/Sub auto-reconnect. Engula matches the expected server-side behavior of these features.

Compatibility Test Coverage

Engula performs automated compatibility verification against mainstream Redis client SDKs, covering:

  • Connection establishment and command execution
  • Data structures and transactions
  • Pub/Sub and Streams
  • Pipeline and Lua scripting
  • Cluster mode handling

For more information:

  • Engula ClientCompat: run the official community client test suites with Docker; see the test methodology, coverage scope, and report structure.

The Engula team continuously improves the test suite to detect and fix differences in a timely manner. Community contributions and PRs to expand coverage are welcome.

Getting Help

If you encounter abnormal client behavior or differences in protocol handling:

  • Submit an issue that includes version information, configuration, and a minimal reproduction.
  • Check the client's issue tracker or release notes to confirm whether there are known issues and fixes related to Redis/Valkey 7.2.
  • Contact the Engula team at support@engula.com, and we will work with client maintainers to ensure consistency and interoperability.

Summary

In one sentence: If it runs on Valkey or Redis 7.2, it runs on Engula. Pick your preferred client from the official Valkey/Redis client directory and seamlessly use Engula's high-performance, memory-efficient architecture.