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).
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
Constraints observed today
Scope
Deliverables
Definition of done