Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Research HTTP/2 support and protocol negotiation

Đang mở
#455 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
45/100
Loại issue
Tài liệu
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
rust
Lĩnh vực
cli, networking

Hướng nghiên cứu

Bắt đầu với Cargo.toml và src/http.rs để xác minh cấu hình hiện tại chỉ dành cho HTTP/1 và thiết lập connector. Điều tra các câu hỏi được liệt kê về khả năng tương tác, tài nguyên, thương lượng, pooling và hành vi giao thức trên các target được hỗ trợ. Được xem là hoàn thành khi có khuyến nghị được lập tài liệu về HTTP/2, các đánh đổi đã được đo lường, kế hoạch triển khai nếu khuyến nghị hỗ trợ, và tài liệu runtime công khai được cập nhật.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement

Context

The current HTTP stack enables only the http1 features in Cargo.toml and constructs its connector with enable_http1() in src/http.rs. HTTP/1.1 is widely interoperable, but HTTP/2 can improve connection reuse, multiplexing, and header compression, and some services or protocols require it.

Adding HTTP/2 also has costs and design questions. It introduces more code and dependencies into every statically linked application, and the host currently creates a new Hyper client for each request, which limits the benefit of multiplexing and connection pooling.

Research questions

Investigate and document:

  • actual interoperability or performance needs for HTTP/2 in basic-cli applications;
  • binary-size, compile-time, memory, and runtime costs on every supported target;
  • supporting HTTP/1.1 and HTTP/2 through TLS ALPN negotiation versus exposing an explicit protocol choice;
  • whether cleartext HTTP/2 (h2c) is in scope;
  • whether the HTTP client should be shared across requests to make connection pooling and HTTP/2 multiplexing useful;
  • request, response, timeout, and error behavior that may differ by protocol;
  • tests for HTTP/1.1 fallback, successful HTTP/2 negotiation, and protocol-specific failures.

Desired outcome

Record whether basic-cli should support HTTP/2, with a recommendation and measured tradeoffs. If support is recommended, define an implementation plan that preserves HTTP/1.1 compatibility and keeps the public API and runtime behavior explicit.

Keep the public runtime documentation updated with the chosen behavior.

Related work

  • #448 documents the current HTTP/1-only behavior.
  • #436 tracks bounded HTTP response bodies.
  • #438 tracks stable HTTP transport error classification.
Ngôn ngữ chính
Rust
Star
121
Fork
45
Merge trung bình
19 giờ 1 phút
Pull request đã merge (30 ngày)
16

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của roc-lang/basic-cli

Tất cả issue của roc-lang/basic-cli

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.