Add configurable limits for HTTP response bodies
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ó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- rust
- Lĩnh vực
- cli, networking
Hướng nghiên cứu
Bắt đầu trong src/http.rs:141-165, đặc biệt là response.into_body().collect().await ở dòng 155, và kiểm tra cấu hình request hiện có cũng như các ví dụ HTTP. Xác định cách chọn giới hạn và cách expose lỗi đã được định kiểu, sau đó áp dụng giới hạn này khi tiêu thụ cả body có độ dài cố định lẫn body chunked. Hoàn thành khi các acceptance test bao phủ các giới hạn thấp hơn, bằng và cao hơn giới hạn, cũng như các giới hạn chunked, đồng thời các ví dụ hiện có chạy thành công trên các target được hỗ trợ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Context
The HTTP host collects the complete response body into memory before returning it to Roc:
src/http.rs:141-165- specifically
response.into_body().collect().awaitat line 155
A slow response can be constrained with the existing request timeout, but there is no response-size limit. A server can therefore return a very large fixed-length or chunked body and cause excessive memory use or an allocation abort.
This matters for a general-purpose CLI platform because URLs and servers are often outside the application's control.
Suggested direction
Add an explicit maximum response-body size to the HTTP API. Design options include:
- a limit on the shared request configuration;
- a platform-level default plus an opt-in override;
- a separate bounded send operation.
Enforce the limit while consuming frames, rather than collecting first and checking afterward. Return a distinct typed error that callers can distinguish from malformed bodies and network failures.
A later streaming response API can be tracked separately; this issue only needs bounded buffering.
Acceptance criteria
- Callers can select or rely on a documented finite response-body limit.
- Both
Content-Lengthresponses and chunked/unknown-length responses are stopped before exceeding the limit. - Exceeding the limit returns a documented typed error rather than panicking or aborting.
- Tests cover a body just below the limit, exactly at it, above it, and a chunked body above it.
- Existing normal HTTP examples continue to pass on every supported target.
- Ngôn ngữ chính
- Rust
- Star
- 121
- Fork
- 46
- Merge trung bình
- 12 giờ 20 phút
- Pull request đã merge (30 ngày)
- 18
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của roc-lang/basic-cli
-
Unix socket supportĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
roc-lang/basic-cli#482 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 45/100
roc-lang/basic-cli#455 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 32/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của roc-lang/basic-cli
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
bytecodealliance/rustix#1703 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
linux build warningĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
Pomax/vst-plugins#24 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
V1 manifest lists written by Java lose added/existing/deleted file countsCó thể đã có người làm @kacper-li-airspace-intelligence đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/iceberg-rust#3445 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
Slack integration: links on self-hosted domains never unfurl (parseCapShareUrl only accepts cap.so / cap.link)Có thể đã có người làm @mangeshraut712 đã nhận hôm nay. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
CapSoftware/Cap#2546 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày