Skip to content

backend/winhttp: init#44

Merged
bdbai merged 30 commits intomainfrom
winhttp/feat/init
Feb 28, 2026
Merged

backend/winhttp: init#44
bdbai merged 30 commits intomainfrom
winhttp/feat/init

Conversation

@bdbai
Copy link
Owner

@bdbai bdbai commented Feb 11, 2026

No description provided.

@bdbai bdbai marked this pull request as draft February 11, 2026 02:00
@bdbai bdbai force-pushed the winhttp/feat/init branch from e5b6121 to 06a8be1 Compare February 21, 2026 17:03
@bdbai bdbai marked this pull request as ready for review February 23, 2026 11:38
@bdbai bdbai requested a review from Copilot February 26, 2026 11:05
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-winhttp crate 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.

@bdbai bdbai requested a review from Copilot February 28, 2026 16:39
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@bdbai bdbai merged commit 299d3ef into main Feb 28, 2026
27 checks passed
@bdbai bdbai deleted the winhttp/feat/init branch February 28, 2026 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants