Skip to content

[Protocol/Redis] Support RESP3 and Cursor-based SCAN + Key History Command #46

@avelino

Description

@avelino

ChronDB currently implements a Redis-compatible interface, but only supports the older RESP2 protocol.
RESP3 (Redis Serialization Protocol v3) introduces typed responses (e.g., maps, sets, nulls, doubles) that make integration with modern clients safer and more expressive.

Why
By implementing RESP3, ChronDB becomes fully compatible with modern Redis clients such as:

Adding SCAN/HSCAN/SSCAN support allows users to iterate over large keyspaces efficiently, while a new HISTORY command enables browsing historical states without full repository traversal.

What to do

  • Implement RESP3 handshake negotiation (HELLO 3 command).
  • Support cursor-based iteration with SCAN/HSCAN/SSCAN.
  • Introduce a new command: HISTORY key [cursor | since <timestamp>]
    returning a paginated chronological list of value changes.
  • Ensure backward compatibility with RESP2 clients.

Acceptance Criteria

  • RESP3 negotiation fully implemented and tested.
  • SCAN and HISTORY commands documented and functional.
  • History pagination supports large datasets.
  • Works with both RESP2 and RESP3 clients.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions