Skip to content
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

[8/n] add trait-based dropshot servers with endpoints #984

Open
wants to merge 37 commits into
base: sunshowers/spr/main.wip-prototype-for-trait-based-dropshot-servers
Choose a base branch
from

Conversation

sunshowers
Copy link
Contributor

@sunshowers sunshowers commented Apr 28, 2024

As discussed in RFD 479 and oxidecomputer/omicron#5247.

Add support for a new way to define Dropshot servers: via a trait. This builds on work done in the prior PRs in this series, such that it reuses as much shared logic from endpoints as possible.

I've tried to structure the PR series such that this one is almost entirely added code. It's also mostly tests, with around 1400 lines of "real" code.

See RFD 479 for more information.

TODO

  • Add support for channels (probably will do in a followup)
  • Handle all XXXs
  • Cover failure test cases to mirror endpoint ones
  • Add more success tests
  • Answer open questions in RFD

Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
dropshot/src/lib.rs Outdated Show resolved Hide resolved
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
@@ -178,6 +178,83 @@
//! for each type of response (which can also include documentation). This is
//! largely known statically, though generated at runtime.
//!
//! ### As a trait server
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is where the end-user documentation starts.

Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
@sunshowers sunshowers changed the base branch from main to sunshowers/spr/main.wip-prototype-for-trait-based-dropshot-servers May 20, 2024 02:15
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
@sunshowers sunshowers changed the title [WIP] prototype for trait-based dropshot servers [6/n] [WIP] add trait-based dropshot servers with endpoints May 20, 2024
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
@sunshowers sunshowers changed the title [6/n] [WIP] add trait-based dropshot servers with endpoints [7/n] [WIP] add trait-based dropshot servers with endpoints May 24, 2024
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
@sunshowers sunshowers changed the title [7/n] [WIP] add trait-based dropshot servers with endpoints [8/n] [WIP] add trait-based dropshot servers with endpoints May 30, 2024
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
Created using spr 1.3.6-beta.1
@sunshowers sunshowers marked this pull request as ready for review June 8, 2024 02:13
Created using spr 1.3.6-beta.1
@sunshowers sunshowers changed the title [8/n] [WIP] add trait-based dropshot servers with endpoints [8/n]add trait-based dropshot servers with endpoints Jun 8, 2024
@sunshowers sunshowers changed the title [8/n]add trait-based dropshot servers with endpoints [8/n] add trait-based dropshot servers with endpoints Jun 8, 2024
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.

None yet

1 participant