Skip to content

Epic: Zero-copy frame API (breaking) – adopt Bytes as Frame #284

@coderabbitai

Description

@coderabbitai

Summary
Track the effort to migrate the public Frame type from Vec to Bytes to enable zero-copy decoding and remove the final copying step in the frame processor.

Context and backlinks

Impact

  • This is a breaking change and requires a major version bump (e.g., v1 → v2).
  • Downstream users consuming the Frame type will be affected.

Constraints observed today

  • BoxedFrameProcessor in app.rs:31 currently constrains Frame = Vec.
  • The middleware layer (ServiceRequest, ServiceResponse) operates on Vec.
  • Multiple trait bounds across the codebase expect Frame = Vec.

Scope

  • Plan and track the design, analysis, benchmarks, and rollout for a Bytes-based Frame API and zero-copy decoding.

Deliverables

  • A design proposal outlining options (e.g., Bytes-only vs. dual support), risks, and trade-offs.
  • A migration plan and compatibility strategy for downstream users.
  • A benchmarking plan and baseline measurements to validate performance goals.
  • A release/rollout plan for a major version update.

Definition of done

  • Design approved.
  • Follow-up analysis issues closed.
  • Benchmarks planned with acceptance thresholds.
  • Release plan documented (including migration guide outline).

Metadata

Metadata

Assignees

Labels

mediumCould be disruptive, but might not happen

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions