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

chore(deps): update rust crate axum to 0.8 #29

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 7, 2025

This PR contains the following updates:

Package Type Update Change
axum workspace.dependencies minor 0.7 -> 0.8

Release Notes

tokio-rs/axum (axum)

v0.8.0: axum v0.8.0

Compare Source

since rc.1

  • breaking: axum::extract::ws::Message now uses Bytes in place of Vec<u8>,
    and a new Utf8Bytes type in place of String, for its variants (#​3078)
  • breaking: Remove OptionalFromRequestParts impl for Query (#​3088)
  • changed: Upgraded tokio-tungstenite to 0.26 (#​3078)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#​3081)

full changelog

Note: there are further relevant changes in axum-core's changelog

  • breaking: Upgrade matchit to 0.8, changing the path parameter syntax from /:single and /*many to /{single} and /{*many}; the old syntax produces a panic to avoid silent change in behavior (#​2645)
  • breaking: Require Sync for all handlers and services added to Router and MethodRouter (#​2473)
  • breaking: The tuple and tuple_struct Path extractor deserializers now check that the number of parameters matches the tuple length exactly (#​2931)
  • breaking: Move Host extractor to axum-extra (#​2956)
  • breaking: Remove WebSocket::close. Users should explicitly send close messages themselves. (#​2974)
  • breaking: Make serve generic over the listener and IO types (#​2941)
  • breaking: Remove Serve::tcp_nodelay and WithGracefulShutdown::tcp_nodelay.
    See serve::ListenerExt for an API that let you set arbitrary TCP stream properties. (#​2941)
  • breaking: Option<Path<T>> no longer swallows all error conditions,
    instead rejecting the request in many cases; see its documentation for details (#​2475)
  • breaking: axum::extract::ws::Message now uses Bytes in place of Vec<u8>,
    and a new Utf8Bytes type in place of String, for its variants (#​3078)
  • fixed: Skip SSE incompatible chars of serde_json::RawValue in Event::json_data (#​2992)
  • fixed: Don't panic when array type is used for path segment (#​3039)
  • fixed: Avoid setting content-length before middleware.
    This allows middleware to add bodies to requests without needing to manually set content-length (#​2897)
  • change: Update minimum rust version to 1.75 (#​2943)
  • changed: Upgraded tokio-tungstenite to 0.26 (#​3078)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#​3081)
  • added: Add method_not_allowed_fallback to set a fallback when a path matches but there is no handler for the given HTTP method (#​2903)
  • added: Add NoContent as a self-described shortcut for StatusCode::NO_CONTENT (#​2978)
  • added: Add support for WebSockets over HTTP/2. They can be enabled by changing get(ws_endpoint) handlers to any(ws_endpoint) (#​2894)
  • added: Add MethodFilter::CONNECT, routing::connect[_service] and MethodRouter::connect[_service] (#​2961)
  • added: Extend FailedToDeserializePathParams::kind enum with (ErrorKind::DeserializeError). This new variant captures both key, value, and message from named path parameters parse errors, instead of only deserialization error message in ErrorKind::Message. (#​2720)

v0.7.9: axum - v0.7.9

Compare Source

  • fixed: Avoid setting content-length before middleware (#​3031)

v0.7.8: axum - v0.7.8

Compare Source

  • fixed: Skip SSE incompatible chars of serde_json::RawValue in Event::json_data (#​2992)
  • added: Add method_not_allowed_fallback to set a fallback when a path matches but there is no handler for the given HTTP method (#​2903)
  • added: Add MethodFilter::CONNECT, routing::connect[_service]
    and MethodRouter::connect[_service] (#​2961)
  • added: Add NoContent as a self-described shortcut for StatusCode::NO_CONTENT (#​2978)

v0.7.7: axum - v0.7.7

Compare Source

  • change: Remove manual tables of content from the documentation, since
    rustdoc now generates tables of content in the sidebar (#​2921)

v0.7.6: axum - v0.7.6

Compare Source

  • change: Avoid cloning Arc during deserialization of Path
  • added: axum::serve::Serve::tcp_nodelay and axum::serve::WithGracefulShutdown::tcp_nodelay (#​2653)
  • added: Router::has_routes function (#​2790)
  • change: Update tokio-tungstenite to 0.23 (#​2841)
  • added: Serve::local_addr and WithGracefulShutdown::local_addr functions (#​2881)

v0.7.5: axum - v0.7.5

Compare Source

  • fixed: Fixed layers being cloned when calling axum::serve directly with
    a Router or MethodRouter (#​2586)
  • fixed: h2 is no longer pulled as a dependency unless the http2 feature
    is enabled (#​2605)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Copy link

sourcery-ai bot commented Jan 7, 2025

Reviewer's Guide by Sourcery

This PR upgrades the axum crate from version 0.7 to 0.8. Several breaking changes are introduced in this upgrade, notably changes to path parameter syntax, WebSocket handling, and the Message type in axum::extract::ws.

Sequence diagram showing updated path parameter handling in axum 0.8

sequenceDiagram
    participant C as Client
    participant R as Router
    participant H as Handler

    Note over R: Old syntax (0.7):<br/>'/users/:id'
    Note over R: New syntax (0.8):<br/>'/users/{id}'

    C->>R: GET /users/123
    R->>R: Parse path params<br/>using new syntax
    R->>H: Forward request with<br/>extracted params
    H-->>C: Response
Loading

Sequence diagram showing WebSocket changes in axum 0.8

sequenceDiagram
    participant C as Client
    participant WS as WebSocket Handler

    Note over WS: Changes in 0.8:<br/>1. HTTP/2 support<br/>2. Manual close handling

    C->>WS: Initiate WebSocket connection
    Note over WS: Now supports both<br/>HTTP/1.1 and HTTP/2
    WS-->>C: Connection established

    C->>WS: Send message
    WS-->>C: Response

    Note over C,WS: Closing connection
    C->>WS: Close request
    Note over WS: No automatic close handling<br/>Must handle explicitly
    WS-->>C: Close acknowledgment
Loading

Class diagram showing changes to WebSocket Message type in axum 0.8

classDiagram
    class Message_0_7 {
        +String text
        +Vec~u8~ binary
    }

    class Message_0_8 {
        +Utf8Bytes text
        +Bytes binary
    }

    note for Message_0_7 "axum 0.7 Message"
    note for Message_0_8 "axum 0.8 Message"
Loading

File-Level Changes

Change Details Files
Upgrade axum crate to 0.8
  • Updated the axum dependency version from 0.7 to 0.8 in Cargo.toml
  • Updated the lockfile Cargo.lock to reflect the changes in dependencies
auctioning_platform/Cargo.toml
auctioning_platform/Cargo.lock

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

We have skipped reviewing this pull request. It seems to have been created by a bot (hey, renovate[bot]!). We assume it knows what it's doing!

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.

0 participants