Skip to content

Protocols overview

fastcached speaks five wire protocols off the same storage engine — four compatible with existing clients, plus one of its own:

Protocol Reference Status
memcached (text) memcached protocol.txt Full
memcached (binary) memcached protocol_binary.xml Full
memcached (meta) memcached protocol.txt §meta Full
Redis (RESP2 + RESP3) Redis Serialization Protocol Key-value subset, plus sets, streams, pub/sub and transactions
Compile cache (0xFC) Compile cache fastcached's own

The compile cache is deliberately unlike the other four: they move opaque bytes, while it understands that a value is a compile result and rewrites the paths inside it. It is also the only one that is versioned, so it is excluded from the capability matrix below — see its own page for the framing, statuses, and error codes.

Each connection is routed to one handler based on its first bytes — see Autodetection for the exact rules. A given client speaks one protocol; mixing on a single connection is not supported.

At a glance

Each row is a logical capability area; cells show how complete each protocol is in fastcached today.

Capability area memcached text memcached binary memcached meta Redis RESP
Storage (set/add/replace/append/prepend) Full Full Full Partial (SET/SETEX/PSETEX/MSET)
CAS Full Full Full Via WATCH + MULTI
Retrieval (get / gets) Full Full Full Full
TTL refresh (touch / GAT) Full Full Full Partial (EXPIRE family; no read-and-touch)
TTL query Via me n/a Via me Full (TTL / PTTL)
Arithmetic (incr / decr) Full Full Full Full (plus INCRBYFLOAT)
Deletion Full Full Full Full
Flush Full Full n/a Full
Stats Sub-commands Basic Via me INFO only
Slabs / LRU tuning Synthetic stub n/a n/a n/a
watch event streaming Not supported n/a n/a n/a
Authentication n/a SASL rejected n/a Full (AUTH vs --requirepass)
Multiple databases n/a n/a n/a Single keyspace
Pub / sub n/a n/a n/a Full, plus keyspace notifications
Sets n/a n/a n/a Partial (7 verbs; no set algebra)
Streams n/a n/a n/a Full enough for consumer groups
Transactions n/a n/a n/a Full (MULTI / EXEC / WATCH)
Key enumeration Not supported n/a n/a Not supported
Scripting (EVAL) n/a n/a n/a Not supported

Legend: Full = full spec coverage · Partial = subset · n/a = not part of that protocol · Not supported = not implemented in fastcached.

The next page, the Coverage matrix, maps each logical operation to the specific command, opcode, or meta-flag in every protocol.

Per-protocol pages

Compatibility

See Compatibility with upstream for a per-protocol completeness scorecard.