C
Chabi
Reference

Feature Matrix

Current capabilities, operational surfaces, and notable limitations in the present implementation.

Protocol And Runtime

CapabilityCurrent stateNotes
RESP TCP serverSupportedPrimary protocol surface
Redis-compatible command executionSupportedCoverage is broad but not complete Redis parity
Multiple logical DBsSupportedSELECT with NUM_DBS = 16
TransactionsSupportedMULTI, EXEC, DISCARD; WATCH is accepted as a stub
Pattern subscriptionsSupportedPSUBSCRIBE and PUNSUBSCRIBE are handled in the connection loop

Data Structures

TypeCurrent stateNotes
StringsSupportedIncludes range and multi-key operations
ListsSupportedIncludes insert, trim, move, and positional lookups
SetsSupportedIncludes store variants and scans
HashesSupportedIncludes increment, scan, and random field behavior
Sorted setsSupportedIncludes rank, range, union/intersection store, scan
BitmapsSupportedSETBIT, GETBIT, BITCOUNT, BITPOS
HyperLogLogSupportedPresent, but implementation is a simplified exact-count stub in code comments

Persistence And Operations

CapabilityCurrent stateNotes
Snapshot restore on bootSupportedLoads chabi.kdb when present
Periodic background snapshotsSupportedDriven by SNAPSHOT_INTERVAL_SECS
SAVESupportedIntercepted in the server loop and persisted synchronously
BGSAVEPartialReturns success text but is not the main persistence path
HTTP health endpointSupportedGET /
HTTP metrics endpointSupportedGET /metrics
HTTP snapshot endpointSupportedGET /snapshot
Prometheus text outputSupportedIncludes connection, command, key, expiration, pubsub metrics

Known Limitations

AreaCurrent stateNotes
CONFIG GETPartialReturns an empty array
COMMAND metadataPartialLimited behavior, not a full Redis command description
DOCS commandNot exposedImplemented in chabi-core, not registered by the server
HTTP key-value APINot presentOlder README prose is stale here
HLL accuracy modelSimplifiedCode comments describe it as a stub using exact counting

Guidance

For development and self-hosting, Chabi is already useful as a Redis-compatible server with persistence and metrics.

For strict Redis parity, treat the current implementation as an actively evolving subset and verify command-specific behavior against the code or integration tests before depending on edge-case semantics.

On this page