Conversation
e5b6121 to
06a8be1
Compare
There was a problem hiding this comment.
Pull request overview
Introduces a new Windows WinHTTP backend (nyquest-backend-winhttp) and integrates it into the backend test suite and CI matrix so it can be exercised alongside existing backends.
Changes:
- Add the new
nyquest-backend-winhttpcrate with blocking/async + (optional) streaming + multipart support. - Wire the WinHTTP backend into
nyquest-backend-tests(feature flags + backend registration) and expand fixtures/expectations. - Extend GitHub Actions workflows to run backend tests for WinHTTP on Windows.
Reviewed changes
Copilot reviewed 37 out of 38 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| nyquest-backend-tests/src/lib.rs | Registers the new winhttp backend feature and adjusts server error logging. |
| nyquest-backend-tests/src/fixtures/scenarios/early_drop.rs | Adds an early-drop client scenario test. |
| nyquest-backend-tests/src/fixtures/scenarios/chunked_encoding.rs | Refactors builder setup for blocking/async paths. |
| nyquest-backend-tests/src/fixtures/scenarios.rs | Includes the new early_drop scenario module. |
| nyquest-backend-tests/src/fixtures/responses.rs | Expands get_header fixture to cover repeated header values and platform differences. |
| nyquest-backend-tests/src/fixtures/client_options/request_timeout.rs | Makes timeout fixture delays configurable and adds elapsed-time assertions. |
| nyquest-backend-tests/src/fixtures/client_options/cache.rs | Excludes WinHTTP from caching tests. |
| nyquest-backend-tests/Cargo.toml | Adds winhttp feature wiring and optional dependency on nyquest-backend-winhttp. |
| backends/winhttp/src/url.rs | Adds URL concatenation/parsing utilities for WinHTTP. |
| backends/winhttp/src/stream/writer.rs | Implements streaming upload buffer/chunk handling. |
| backends/winhttp/src/stream/dummy_writer.rs | Provides a stub writer when stream features are disabled. |
| backends/winhttp/src/stream.rs | Defines shared stream upload types and conditional writer module selection. |
| backends/winhttp/src/session.rs | Implements WinHTTP session creation and option configuration. |
| backends/winhttp/src/request.rs | Implements request construction, header/body preparation, and WinHTTP handle creation. |
| backends/winhttp/src/multipart.rs | Implements multipart body generation (bytes + stream parts). |
| backends/winhttp/src/lib.rs | Defines the WinHTTP backend crate entry points and feature-gated modules. |
| backends/winhttp/src/handle/session.rs | Wraps WinHTTP session handles and session-level options. |
| backends/winhttp/src/handle/request.rs | Wraps WinHTTP request handles and request operations (send/read/write/header queries). |
| backends/winhttp/src/handle/connection.rs | Wraps WinHTTP connection handles. |
| backends/winhttp/src/handle.rs | Exposes the WinHTTP handle wrapper modules. |
| backends/winhttp/src/error.rs | Defines WinHTTP-specific error mapping into nyquest errors. |
| backends/winhttp/src/blocking/response.rs | Implements blocking response reading and header access. |
| backends/winhttp/src/blocking/client.rs | Implements blocking client request execution and optional streaming upload. |
| backends/winhttp/src/blocking.rs | Declares blocking client/response modules. |
| backends/winhttp/src/async/threadpool.rs | Adds Win32 threadpool submission for async setup work. |
| backends/winhttp/src/async/state_fut.rs | Adds a small Future helper to await state transitions. |
| backends/winhttp/src/async/response.rs | Implements async response reading, including optional AsyncRead. |
| backends/winhttp/src/async/context.rs | Defines shared async request context/state for callbacks + futures. |
| backends/winhttp/src/async/client.rs | Implements async client request execution and optional streaming upload. |
| backends/winhttp/src/async/callback.rs | Implements WinHTTP status callback and state transitions. |
| backends/winhttp/src/async.rs | Declares async submodules. |
| backends/winhttp/README.md | Adds documentation for the new backend crate and its features. |
| backends/winhttp/Cargo.toml | Adds the new backend crate manifest, features, and dependencies. |
| Cargo.lock | Records new crate/dependency entries for the WinHTTP backend and transitive deps. |
| .github/workflows/backend-tests-blocking.yml | Adds a Windows WinHTTP job for blocking backend tests. |
| .github/workflows/backend-tests-blocking-stream.yml | Adds a Windows WinHTTP job for blocking-stream backend tests. |
| .github/workflows/backend-tests-async.yml | Adds a Windows WinHTTP job for async backend tests. |
| .github/workflows/backend-tests-async-stream.yml | Adds a Windows WinHTTP job for async-stream backend tests. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 38 out of 39 changed files in this pull request and generated 4 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 38 out of 39 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 38 out of 39 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 39 out of 40 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.