Skip to content

[rust-server] Update to hyper1 in rust-server generator #21422

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jul 2, 2025

Conversation

dsteeley
Copy link
Contributor

@dsteeley dsteeley commented Jun 17, 2025

Following on from #21332 this PR completes the upgrade to Hyper1.

  • Added rust-server-deprecated as a fallback. This generator can be removed in 8.0.x.
    • Probably should be in a separate PR
  • Additional testing of rust-server samples
  • All examples building and new tests pass

Plus all of the changes from #21332

  • Biggest changes are hyper 0.14 to 1.6, and tokio 0.2 to 1.45.
  • hyper's service_fn requires hyper::service::service::Service to return a Request. The previous version had a Service return another Service
  • Swagger 7.0.0-rc2 is needed because that depends on hyper 1.x

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package || exit
    ./bin/generate-samples.sh ./bin/configs/*.yaml || exit
    ./bin/utils/export_docs_generators.sh || exit
    
    (For Windows users, please run the script in WSL)
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    IMPORTANT: Do NOT purge/delete any folders/files (e.g. tests) when regenerating the samples as manually written tests may be removed.
  • File the PR against the correct branch: master (upcoming 7.x.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

Leaving this as draft for now, I'm running some testing of it through to us using it in production staging environments to validate the changes.

@wing328
Copy link
Member

wing328 commented Jun 17, 2025

thanks for the pr

all tests passed

cc @frol (2017/07) @farcaller (2017/08) @richardwhiuk (2019/07) @paladinzh (2020/05) @jacob-pro (2022/10)

@dsteeley dsteeley force-pushed the rust-server-hyper1 branch 4 times, most recently from 56bda8e to 51b9a59 Compare June 25, 2025 09:21
* Add tests to all examples, clippy, tests, cli-bin, run examples
* Use headers Auth structs
* Fixup various clippy lints
* Move more Service impl to use BoxBody
* Reduce generic restriction on some Service impl where possible
@dsteeley dsteeley force-pushed the rust-server-hyper1 branch from 51b9a59 to 195f159 Compare June 25, 2025 09:56
@dsteeley dsteeley marked this pull request as ready for review June 25, 2025 10:54
@dsteeley
Copy link
Contributor Author

@wing328 Thanks for the initial pass. I've now tested this in our server stack and made a few tweaks with various bugs I have found.
I think this is ready for a review.

@wing328 wing328 added Enhancement: Compatibility Server: Rust Enhancement: Code Cleanup General refactoring, removal of deprecated things, commenting, etc. Breaking change (with fallback) labels Jul 2, 2025
@wing328 wing328 added this to the 7.15.0 milestone Jul 2, 2025
@wing328 wing328 merged commit 2af194b into OpenAPITools:master Jul 2, 2025
20 checks passed
@wing328
Copy link
Member

wing328 commented Jul 2, 2025

thanks for the PR

let's give it a try

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants