Skip to content

Refactor IO "read" core logic#3014

Draft
mgravell wants to merge 6 commits intomainfrom
marc/resp-reader
Draft

Refactor IO "read" core logic#3014
mgravell wants to merge 6 commits intomainfrom
marc/resp-reader

Conversation

@mgravell
Copy link
Collaborator

@mgravell mgravell commented Feb 16, 2026

This is a partial implementation of the IO core rewrite, that just migrates the reader logic, without being the entire "big bang"; this is intended to stabilize multiple issues associated with the existing code.

  • Core read
    • Bring RESPite lib into project with RespReader core (pre-existing, well-tested work)
    • Remove pipe
    • Replace primary “read” loop with read-loop from RESPite
    • Implement based write buffer to shim write-loop
    • Implement (temporary) shim from inbound RespReader to outgoing RawResult
    • Create unit-test infrastructure for result processors
    • Whittle through result-processors until all RawResult code removed, with unit tests for each
      • ideal AI candidate
    • Remove RawResult entirely (including result processor shim)
    • Remove Pipelines.Sockets.Unofficial if possible

Later planned stages (separate release schedule):

  • Core write
    • Migrate RespWriter core into RESPite
    • API to enable messages to be pre-written (recycling) at construction, and implement - noting that EVAL[SHA] and MULTI/EXEC may need consideration (mostly MULTI/EXEC; EVAL[SHA] can probably be simplified greatly, if we can re-introduce the N in “this buffer is N messages”)
    • Migrate from “message” as the primary payload to “message writer of T” with “state T”
  • Advanced write
    • Migrate existing message creation code to use the Roslyn generator bits with generated message writers
    • Migrate batch logic as per RESPite
  • Extensibility API
    • Expose parser/writer API for external consumers
    • migrate NRedisStack to use parser/writer API

@mgravell mgravell changed the title resp reader core Refactor IO "read" core logic Feb 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant