Update all dependencies - autoclosed #17

Closed
kjuulh wants to merge 15 commits from renovate/all into main
Owner

This PR contains the following updates:

Package Type Update Change
anyhow dependencies patch 1.0.66 -> 1.0.71
argon2 dependencies minor 0.4 -> 0.5
async-graphql dependencies major 4.0.16 -> 5.0.9
axum dependencies minor 0.5.17 -> 0.6.18
cookie dependencies minor 0.16 -> 0.17
mockall dependencies patch 0.11.3 -> 0.11.4
serde (source) dependencies patch 1.0.147 -> 1.0.163
serde_json dependencies patch 1.0.89 -> 1.0.96
tokio (source) dependencies minor 1.22.0 -> 1.28.1
tower-http dependencies minor 0.3.4 -> 0.4.0
tower-http dependencies minor 0.3 -> 0.4
tracing-subscriber (source) dependencies patch 0.3.16 -> 0.3.17
uuid dependencies minor 1.2.2 -> 1.3.3

⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


Release Notes

dtolnay/anyhow

v1.0.71

Compare Source

  • Documentation improvements

v1.0.70

Compare Source

  • Update syn dependency to 2.x

v1.0.69

Compare Source

  • Documentation improvements

v1.0.68

Compare Source

  • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

v1.0.67

Compare Source

  • Improve the backtrace captured when context() is used on an Option (#​280)
RustCrypto/password-hashes

v0.5.0

Added
  • Key derivation usage example (#​366)
  • Inherent constants for Params recommendations (#​387)
Changed
  • Merge Argon2 and Instance structs (#​247)
  • Refactor ParamsBuilder to make it more ergonomic (#​247)
  • Bump password-hash dependency to v0.5 (#​383)
  • Adopt OWASP recommended default Params (#​386)
  • MSRV 1.65 (#​391)
Fixed
  • Erroneous docs for m_cost and Block (#​247)
  • Allow zeroize in heapless environments (i.e. without alloc) (#​374)
Removed

v0.4.1

Added
  • argon2::RECOMMENDED_SALT_LEN (#​307)
async-graphql/async-graphql

v5.0.9

  • Prevent input check stack overflow #​1293
  • Change batch requests to run concurrently #​1290

v5.0.8

  • Improve documentation about DataloaderImprove documentation about Dataloader #​1282
  • Prevent recursive input type checking from hitting stack overflow #​1284
  • update MSRV to 1.65.0

v5.0.7

  • Disable default-features in workspace.dependencies #​1232
  • Copy edit extensions section of The Book #​1234
  • disable default features for async-graphql in workspace dependencies #​1237
  • chore: make edge field and connection field shareable #​1246
  • Added 3 new fns to the ObjectAccessor. #​1244
  • Dataloader futures lose span context #​1256
  • Propagate ErrorExtensionValues when calling InputValueError.propagate #​1257
  • Correct error string for object in ValueAccessor #​1260

v5.0.6

  • docs: Tweak dataloader example and link to full example #​1194
  • docs: Mention the importance of using dataloader with federation/entities #​1194
  • chore: enable GraphiQL/Playground via feature flag #​1202
  • fix: Export directives to federation SDL so they can be composed. #​1209
  • Fix doc contents details and add AutoCorrect lint to CI. #​1210
  • fix: provide correct type for _service with dynamic schema #​1212
  • feat(subscription): support generics in MergedSubscription types #​1222
  • feat: modify Connection to allow optionally disable nodes field in gql output. #​1218
  • fixes interface type condition query #​1228
  • fixes #​1226
  • update MSRV to 1.64.0

v5.0.5

v5.0.4

  • Fix named_list_nn #​1172
  • Add DynamicRequestExt::root_value to specify the root value for the request
  • Change CustomValidator::check returns error type from String to InputValueError<T>.
  • Add support that custom validators can set error extensions. #​1174

v5.0.3

v5.0.2

v5.0.1

  • Add boolean dynamic ValueAccessor method #​1153

v5.0.0

  • Update MSRV to 1.60.0
  • async-graphql-axum] bump axum from `0.5.1` to `0.6.0` [#&#8203;1106](https://github.com/async-graphql/async-graphql/issues/1106)
    
    
tokio-rs/axum

v0.6.18: axum - v0.6.18

Compare Source

  • fixed: Don't remove the Sec-WebSocket-Key header in WebSocketUpgrade (#​1972)

v0.6.17: axum - v0.6.17

Compare Source

  • fixed: Fix fallbacks causing a panic on CONNECT requests (#​1958)

v0.6.16: axum - v0.6.16

Compare Source

  • fixed: Don't allow extracting MatchedPath in fallbacks (#​1934)
  • fixed: Fix panic if Router with something nested at / was used as a fallback (#​1934)
  • added: Document that Router::new().fallback(...) isn't optimal (#​1940)

v0.6.15: axum - v0.6.15

Compare Source

  • fixed: Removed additional leftover debug messages (#​1927)

v0.6.14: axum - v0.6.14

Compare Source

  • fixed: Removed leftover "path_router hit" debug message (#​1925)

v0.6.13: axum - v0.6.13

Compare Source

  • added: Log rejections from built-in extractors with the
    axum::rejection=trace target (#​1890)
  • fixed: Fixed performance regression with Router::nest introduced in
    0.6.0. nest now flattens the routes which performs better (#​1711)
  • fixed: Extracting MatchedPath in nested handlers now gives the full
    matched path, including the nested path (#​1711)
  • added: Implement Deref and DerefMut for built-in extractors (#​1922)

v0.6.12: axum - v0.6.12

Compare Source

  • added: Implement IntoResponse for MultipartError (#​1861)
  • fixed: More clearly document what wildcards matches (#​1873)

v0.6.11: axum - v0.6.11

Compare Source

  • fixed: Don't require S: Debug for impl Debug for Router<S> (#​1836)
  • fixed: Clone state a bit less when handling requests (#​1837)
  • fixed: Unpin itoa dependency (#​1815)

v0.6.10: axum - v0.6.10

Compare Source

  • fixed: Add #[must_use] attributes to types that do nothing unless used (#​1809)
  • fixed: Gracefully handle missing headers in the TypedHeader extractor (#​1810)
  • fixed: Fix routing issues when loading a Router via a dynamic library (#​1806)

v0.6.9: axum - v0.6.9

Compare Source

  • changed: Update to tower-http 0.4. axum is still compatible with tower-http 0.3 (#​1783)

v0.6.8: axum - v0.6.8

Compare Source

  • fixed: Fix Allow missing from routers with middleware (#​1773)
  • added: Add KeepAlive::event for customizing the event sent for SSE keep alive (#​1729)

v0.6.7: axum - v0.6.7

Compare Source

  • added: Add FormRejection::FailedToDeserializeFormBody which is returned
    if the request body couldn't be deserialized into the target type, as opposed
    to FailedToDeserializeForm which is only for query parameters (#​1683)
  • added: Add MockConnectInfo for setting ConnectInfo during tests (#​1767)

v0.6.6: axum - v0.6.6

Compare Source

  • fixed: Enable passing MethodRouter to Router::fallback (#​1730)

v0.6.5: axum - v0.6.5

Compare Source

  • fixed: Fix #[debug_handler] sometimes giving wrong borrow related suggestions (#​1710)
  • Document gotchas related to using impl IntoResponse as the return type from handler functions (#​1736)

v0.6.4: axum - v0.6.4

Compare Source

  • Depend on axum-macros 0.3.2

v0.6.3: axum - v0.6.3

Compare Source

  • added: Implement IntoResponse for &'static [u8; N] and [u8; N] (#​1690)
  • fixed: Make Path support types using serde::Deserializer::deserialize_any (#​1693)
  • added: Add RawPathParams (#​1713)
  • added: Implement Clone and Service for axum::middleware::Next (#​1712)
  • fixed: Document required tokio features to run "Hello, World!" example (#​1715)

v0.6.2: axum - v0.6.2

Compare Source

  • added: Add body_text and status methods to built-in rejections (#​1612)
  • added: Enable the runtime feature of hyper when using tokio (#​1671)

v0.6.1: axum - v0.6.1

Compare Source

  • added: Expand the docs for Router::with_state (#​1580)

v0.6.0: axum - v0.6.0

Compare Source

Routing

  • fixed: Nested routers are now allowed to have fallbacks (#​1521):

    let api_router = Router::new()
        .route("/users", get(|| { ... }))
        .fallback(api_fallback);
    
    let app = Router::new()
        // this would panic in 0.5 but in 0.6 it just works
        //
        // requests starting with `/api` but not handled by `api_router`
        // will go to `/api_fallback`
        .nest("/api", api_router);
    

    The outer router's fallback will still apply if a nested router doesn't have
    its own fallback:

    // this time without a fallback
    let api_router = Router::new().route("/users", get(|| { ... }));
    
    let app = Router::new()
        .nest("/api", api_router)
        // `api_fallback` will inherit this fallback
        .fallback(app_fallback);
    
  • breaking: The request /foo/ no longer matches /foo/*rest. If you want
    to match /foo/ you have to add a route specifically for that (#​1086)

    For example:

    use axum::{Router, routing::get, extract::Path};
    
    let app = Router::new()
        // this will match `/foo/bar/baz`
        .route("/foo/*rest", get(handler))
        // this will match `/foo/`
        .route("/foo/", get(handler))
        // if you want `/foo` to match you must also add an explicit route for it
        .route("/foo", get(handler));
    
    async fn handler(
        // use an `Option` because `/foo/` and `/foo` don't have any path params
        params: Option<Path<String>>,
    ) {}
    
  • breaking: Path params for wildcard routes no longer include the prefix
    /. e.g. /foo.js will match /*filepath with a value of foo.js, not
    /foo.js (#​1086)

    For example:

    use axum::{Router, routing::get, extract::Path};
    
    let app = Router::new().route("/foo/*rest", get(handler));
    
    async fn handler(
        Path(params): Path<String>,
    ) {
        // for the request `/foo/bar/baz` the value of `params` will be `bar/baz`
        //
        // on 0.5 it would be `/bar/baz`
    }
    
  • fixed: Routes like /foo and /*rest are no longer considered
    overlapping. /foo will take priority (#​1086)

    For example:

    use axum::{Router, routing::get};
    
    let app = Router::new()
        // this used to not be allowed but now just works
        .route("/foo/*rest", get(foo))
        .route("/foo/bar", get(bar));
    
    async fn foo() {}
    
    async fn bar() {}
    
  • breaking: Automatic trailing slash redirects have been removed.
    Previously if you added a route for /foo, axum would redirect calls to
    /foo/ to /foo (or vice versa for /foo/):

    use axum::{Router, routing::get};
    
    let app = Router::new()
        // a request to `GET /foo/` will now get `404 Not Found`
        // whereas in 0.5 axum would redirect to `/foo`
        //
        // same goes the other way if you had the route `/foo/`
        // axum will no longer redirect from `/foo` to `/foo/`
        .route("/foo", get(handler));
    
    async fn handler() {}
    

    Either explicitly add routes for /foo and /foo/ or use
    axum_extra::routing::RouterExt::route_with_tsr if you want the old behavior
    (#​1119)

  • breaking: Router::fallback now only accepts Handlers (similarly to
    what get, post, etc. accept). Use the new Router::fallback_service for
    setting any Service as the fallback (#​1155)

    This fallback on 0.5:

    use axum::{Router, handler::Handler};
    
    let app = Router::new().fallback(fallback.into_service());
    
    async fn fallback() {}
    

    Becomes this in 0.6

    use axum::Router;
    
    let app = Router::new().fallback(fallback);
    
    async fn fallback() {}
    
  • changed: Router::nest now only accepts Routers, the general-purpose
    Service nesting method has been renamed to nest_service (#​1368)

  • breaking: Allow Error: Into<Infallible> for Route::{layer, route_layer} (#​924)

  • breaking: MethodRouter now panics on overlapping routes (#​1102)

  • breaking: Router::route now only accepts MethodRouters created with
    get, post, etc. Use the new Router::route_service for routing to
    any Services (#​1155)

  • breaking: Adding a .route_layer onto a Router or MethodRouter
    without any routes will now result in a panic. Previously, this just did
    nothing. #​1327

  • breaking: RouterService has been removed since Router now implements
    Service when the state is (). Use Router::with_state to provide the
    state and get a Router<()>. Note that RouterService only existed in the
    pre-releases, not 0.5 (#​1552)

Extractors

  • added: Added new type safe State extractor. This can be used with
    Router::with_state and gives compile errors for missing states, whereas
    Extension would result in runtime errors (#​1155)

    We recommend migrating from Extension to State for sharing application state since that is more type
    safe and faster. That is done by using Router::with_state and State.

    This setup in 0.5

    use axum::{routing::get, Extension, Router};
    
    let app = Router::new()
        .route("/", get(handler))
        .layer(Extension(AppState {}));
    
    async fn handler(Extension(app_state): Extension<AppState>) {}
    
    #[derive(Clone)]
    struct AppState {}
    

    Becomes this in 0.6 using State:

    use axum::{routing::get, extract::State, Router};
    
    let app = Router::new()
        .route("/", get(handler))
        .with_state(AppState {});
    
    async fn handler(State(app_state): State<AppState>) {}
    
    #[derive(Clone)]
    struct AppState {}
    

    If you have multiple extensions, you can use fields on AppState and implement
    FromRef:

    use axum::{extract::{State, FromRef}, routing::get, Router};
    
    let state = AppState {
        client: HttpClient {},
        database: Database {},
    };
    
    let app = Router::new().route("/", get(handler)).with_state(state);
    
    async fn handler(
        State(client): State<HttpClient>,
        State(database): State<Database>,
    ) {}
    
    // the derive requires enabling the "macros" feature
    #[derive(Clone, FromRef)]
    struct AppState {
        client: HttpClient,
        database: Database,
    }
    
    #[derive(Clone)]
    struct HttpClient {}
    
    #[derive(Clone)]
    struct Database {}
    
  • breaking: It is now only possible for one extractor per handler to consume
    the request body. In 0.5 doing so would result in runtime errors but in 0.6 it
    is a compile error (#​1272)

    axum enforces this by only allowing the last extractor to consume the
    request.

    For example:

    use axum::{Json, http::HeaderMap};
    
    // This wont compile on 0.6 because both `Json` and `String` need to consume
    // the request body. You can use either `Json` or `String`, but not both.
    async fn handler_1(
        json: Json<serde_json::Value>,
        string: String,
    ) {}
    
    // This won't work either since `Json` is not the last extractor.
    async fn handler_2(
        json: Json<serde_json::Value>,
        headers: HeaderMap,
    ) {}
    
    // This works!
    async fn handler_3(
        headers: HeaderMap,
        json: Json<serde_json::Value>,
    ) {}
    

    This is done by reworking the FromRequest trait and introducing a new
    FromRequestParts trait.

    If your extractor needs to consume the request body then you should implement
    FromRequest, otherwise implement FromRequestParts.

    This extractor in 0.5:

    struct MyExtractor { /* ... */ }
    
    #[async_trait]
    impl<B> FromRequest<B> for MyExtractor
    where
        B: Send,
    {
        type Rejection = StatusCode;
    
        async fn from_request(req: &mut RequestParts<B>) -> Result<Self, Self::Rejection> {
            // ...
        }
    }
    

    Becomes this in 0.6:

    use axum::{
        extract::{FromRequest, FromRequestParts},
        http::{StatusCode, Request, request::Parts},
        async_trait,
    };
    
    struct MyExtractor { /* ... */ }
    
    // implement `FromRequestParts` if you don't need to consume the request body
    #[async_trait]
    impl<S> FromRequestParts<S> for MyExtractor
    where
        S: Send + Sync,
    {
        type Rejection = StatusCode;
    
        async fn from_request_parts(parts: &mut Parts, state: &S) -> Result<Self, Self::Rejection> {
            // ...
        }
    }
    
    // implement `FromRequest` if you do need to consume the request body
    #[async_trait]
    impl<S, B> FromRequest<S, B> for MyExtractor
    where
        S: Send + Sync,
        B: Send + 'static,
    {
        type Rejection = StatusCode;
    
        async fn from_request(req: Request<B>, state: &S) -> Result<Self, Self::Rejection> {
            // ...
        }
    }
    

    For an example of how to write an extractor that accepts different
    Content-Types see the [parse-body-based-on-content-type][parse-body-based-on-content-type] example.

  • added: FromRequest and FromRequestParts derive macro re-exports from
    [axum-macros][axum-macros] behind the macros feature (#​1352)

  • added: Add RequestExt and RequestPartsExt which adds convenience
    methods for running extractors to http::Request and http::request::Parts (#​1301)

  • added: JsonRejection now displays the path at which a deserialization
    error occurred (#​1371)

  • added: Add extract::RawForm for accessing raw urlencoded query bytes or request body (#​1487)

  • fixed: Used 400 Bad Request for FailedToDeserializeQueryString
    rejections, instead of 422 Unprocessable Entity (#​1387)

  • changed: The inner error of a JsonRejection is now
    serde_path_to_error::Error<serde_json::Error>. Previously it was
    serde_json::Error (#​1371)

  • changed: The default body limit now applies to the Multipart extractor (#​1420)

  • breaking: ContentLengthLimit has been removed. Use DefaultBodyLimit instead (#​1400)

  • breaking: RequestParts has been removed as part of the FromRequest
    rework (#​1272)

  • breaking: BodyAlreadyExtracted has been removed (#​1272)

  • breaking: The following types or traits have a new S type param
    which represents the state (#​1155):

    • Router, defaults to ()
    • MethodRouter, defaults to ()
    • FromRequest, no default
    • Handler, no default
  • breaking: MatchedPath can now no longer be extracted in middleware for
    nested routes. In previous versions it returned invalid data when extracted
    from a middleware applied to a nested router. MatchedPath can still be
    extracted from handlers and middleware that aren't on nested routers (#​1462)

  • breaking: Rename FormRejection::FailedToDeserializeQueryString to
    FormRejection::FailedToDeserializeForm (#​1496)

Middleware

  • added: Support running extractors on middleware::from_fn functions (#​1088)
  • added: Add middleware::from_fn_with_state to enable running extractors that require
    state (#​1342)
  • added: Add middleware::from_extractor_with_state (#​1396)
  • added: Add map_request, map_request_with_state for transforming the
    request with an async function (#​1408)
  • added: Add map_response, map_response_with_state for transforming the
    response with an async function (#​1414)
  • added: Support any middleware response that implements IntoResponse (#​1152)
  • breaking: Remove extractor_middleware which was previously deprecated.
    Use axum::middleware::from_extractor instead (#​1077)
  • breaking: Require middleware added with Handler::layer to have
    Infallible as the error type (#​1152)

Misc

  • added: Support compiling to WASM. See the simple-router-wasm example
    for more details (#​1382)
  • added: Add ServiceExt with methods for turning any Service into a
    MakeService similarly to Router::into_make_service (#​1302)
  • added: String and binary From impls have been added to extract::ws::Message
    to be more inline with tungstenite (#​1421)
  • added: Add #[derive(axum::extract::FromRef)] (#​1430)
  • added: Add accept_unmasked_frames setting in WebSocketUpgrade (#​1529)
  • added: Add WebSocketUpgrade::on_failed_upgrade to customize what to do
    when upgrading a connection fails (#​1539)
  • fixed: Annotate panicking functions with #[track_caller] so the error
    message points to where the user added the invalid route, rather than
    somewhere internally in axum (#​1248)
  • changed: axum's MSRV is now 1.60 (#​1239)
  • changed: For methods that accept some S: Service, the bounds have been
    relaxed so the response type must implement IntoResponse rather than being a
    literal Response
  • breaking: New tokio default feature needed for WASM support. If you
    don't need WASM support but have default_features = false for other reasons
    you likely need to re-enable the tokio feature (#​1382)
  • breaking: handler::{WithState, IntoService} are merged into one type,
    named HandlerService (#​1418)
SergioBenitez/cookie-rs

v0.17.0

Compare Source

Breaking Changes
  • Cookie parsing no longer removes a . Domain prefix. Cookie::domain()
    now removes a . prefix before returning.

    As these changes are inverses, they are not likely observable. The change
    only affects manually set domain values via the .domain() builder
    method, the set_domain() setter method, or similar, which will now have a
    prefix of . removed when returned by Cookie::domain(). This results in
    more consistent treatment of Domain values.

New Features
  • Added Cookie::split_parse() and Cookie::split_parse_encoded() methods.

    The methods split a ;-joined cookie string and parse/decode the split
    values. They return a newly introduced iterator value of type SplitCookies
    over the parse results.

General Changes and Fixes
  • Parsing fuzzers were introduced and run for 48 CPU hours without failure.
  • base64 was updated to 0.21.

v0.16.2

Compare Source

General Changes
  • base64 was updated to 0.20.

v0.16.1

Compare Source

Changes and Fixes
  • The ,, (, and ) are percent-encoded/decoded when encoding is used.
  • The aes-gcm dependency was updated to 0.10.
asomers/mockall

v0.11.4

Compare Source

Fixed
  • Static methods' expectations will now be cleared during a panic.
    (#​443)

  • The checkpoint method now works correctly even after a panic due to too many
    method calls.
    (#​472)

  • Methods with unknown size type bounds can now be mocked.
    (#​421)

serde-rs/serde

v1.0.163

Compare Source

  • Eliminate build script from serde_derive crate to slightly reduce build time (#​2442, thanks @​taiki-e)

v1.0.162

Compare Source

  • Support deserializing flattened adjacently tagged enums from data formats which represent fields as bytes, such as the csv crate (#​2377, thanks @​mfro)

    #[derive(Deserialize)]
    pub struct Record {
        common: u64,
        #[serde(flatten)]
        kind: Kind,
    }
    
    #[derive(Deserialize)]
    #[serde(tag = "kind", content = "parameter", rename_all = "lowercase")]
    enum Kind {
        Foo(u64),
        Bar(bool),
    }
    
    common,kind,parameter
    1,foo,42
    2,bar,true
    

v1.0.161

Compare Source

  • Improve error messages produced by serde_test on test failure (#​2435, thanks @​Mingun)

v1.0.160

Compare Source

v1.0.159

Compare Source

  • Accept empty #[serde()] attribute (#​2422)

v1.0.158

Compare Source

  • Fix "expected serde crate attribute to be a string" error when using macro_rules metavariable inside of serde attribute: #[serde(crate = $serde_path)] (#​2409)

v1.0.157

Compare Source

  • Update syn dependency to 2.x

v1.0.156

Compare Source

  • Documentation improvements

v1.0.155

Compare Source

  • Support Serialize and Deserialize impls for core::ffi::CStr and alloc::ffi::CString without "std" feature (#​2374, thanks @​safarir)

v1.0.154

Compare Source

  • Fix "undeclared lifetime" error in generated code when deriving Deserialize for an enum with both flatten and 'static fields (#​2383, thanks @​Mingun)

v1.0.153

Compare Source

  • Support serde(alias = "…") attribute used inside of flattened struct (#​2387, thanks @​bebecue)

v1.0.152

Compare Source

  • Documentation improvements

v1.0.151

Compare Source

  • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#​2344)

v1.0.150

Compare Source

  • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#​2334)
  • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#​2337, thanks @​badboy)

v1.0.149

Compare Source

  • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#​2333, thanks @​jonasbb)

v1.0.148

Compare Source

  • Support remote derive for generic types that have private fields (#​2327)
serde-rs/json

v1.0.96

Compare Source

v1.0.95

Compare Source

  • Preserve f32 precision when serializing f32 -> serde_json::Value -> JSON string in "arbitrary_precision" mode (#​1004, #​1005)

v1.0.94

Compare Source

  • Fix message duplication between serde_json::Error's Display and source() (#​991, #​992)

v1.0.93

Compare Source

  • Support 128-bit integers in serde_json::to_value (#​982)

v1.0.92

Compare Source

  • Documentation improvements

v1.0.91

Compare Source

  • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

v1.0.90

Compare Source

  • Documentation improvements
tokio-rs/tokio

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.

Fixed
  • rt: improve native AtomicU64 support detection (#​5284)
Added
  • rt: add configuration option for max number of I/O events polled from the OS
    per tick (#​5186)
  • rt: add an environment variable for configuring the default number of worker
    threads per runtime instance (#​4250)
Changed
  • sync: reduce MPSC channel stack usage (#​5294)
  • io: reduce lock contention in I/O operations (#​5300)
  • fs: speed up read_dir() by chunking operations (#​5309)
  • rt: use internal ThreadId implementation (#​5329)
  • test: don't auto-advance time when a spawn_blocking task is running (#​5115)

v1.23.1: Tokio v1.23.1

Compare Source

This release forward ports changes from 1.18.4.

Fixed
  • net: fix Windows named pipe server builder to maintain option when toggling
    pipe mode (#​5336).

v1.23.0: Tokio v1.23.0

Compare Source

Fixed
  • net: fix Windows named pipe connect (#​5208)
  • io: support vectored writes for ChildStdin (#​5216)
  • io: fix async fn ready() false positive for OS-specific events (#​5231)
Changed
  • runtime: yield_now defers task until after driver poll (#​5223)
  • runtime: reduce amount of codegen needed per spawned task (#​5213)
  • windows: replace winapi dependency with windows-sys (#​5204)
tower-rs/tower-http

v0.4.0: v0.4.0

Compare Source

Added

  • decompression: Add RequestDecompression middleware (#​282)
  • compression: Implement Default for CompressionBody (#​323)
  • compression, decompression: Support zstd (de)compression (#​322)

Changed

  • serve_dir: ServeDir and ServeFile's error types are now Infallible and any IO errors
    will be converted into responses. Use try_call to generate error responses manually (BREAKING) (#​283)
  • serve_dir: ServeDir::fallback and ServeDir::not_found_service now requires
    the fallback service to use Infallible as its error type (BREAKING) (#​283)
  • compression, decompression: Tweak prefered compression encodings (#​325)

Removed

  • Removed RequireAuthorization in favor of ValidateRequest (BREAKING) (#​290)

Fixed

  • serve_dir: Don't include identity in Content-Encoding header (#​317)
  • compression: Do compress SVGs (#​321)
  • serve_dir: In ServeDir, convert io::ErrorKind::NotADirectory to 404 Not Found (#​331)

v0.3.5: v0.3.5

Compare Source

Added

  • Add NormalizePath middleware (#​275)
  • Add ValidateRequest middleware (#​289)
  • Add RequestBodyTimeout middleware (#​303)

Changed

  • Bump Minimum Supported Rust Version to 1.60 (#​299)

Fixed

  • trace: Correctly identify gRPC requests in default on_response callback (#​278)
  • cors: Panic if a wildcard (*) is passed to AllowOrigin::list. Use
    AllowOrigin::any() instead (#​285)
  • serve_dir: Call the fallback on non-uft8 request paths (#​310)
tokio-rs/tracing

v0.3.17: tracing-subscriber 0.3.17

Compare Source

This release of tracing-subscriber fixes a build error when using env-filter
with recent versions of the regex crate. It also introduces several minor API
improvements.

Fixed
  • env-filter: Add "unicode-case" and "unicode-perl" to the regex
    dependency, fixing a build error with recent versions of regex (#​2566)
  • A number of minor documentation typos and other fixes (#​2384, #​2378,
    #​2368, #​2548)
Added
  • filter: Add fmt::Display impl for filter::Targets (#​2343)
  • fmt: Made with_ansi(false) no longer require the "ansi" feature, so that
    ANSI formatting escapes can be disabled without requiring ANSI-specific
    dependencies (#​2532)
Changed
  • fmt: Dim targets in the Compact formatter, matching the default
    formatter (#​2409)

Thanks to @​keepsimple1, @​andrewhalle, @​LeoniePhiline, @​LukeMathWalker,
@​howardjohn, @​daxpedda, and @​dbidwell94 for contributing to this release!

uuid-rs/uuid

v1.3.3

Compare Source

What's Changed

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.3.2...1.3.3

v1.3.2

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.3.1...1.3.2

v1.3.1

Compare Source

What's Changed

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.3.0...1.3.1

v1.3.0

Compare Source

What's Changed
New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/1.2.2...1.3.0


Configuration

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

🚦 Automerge: Enabled.

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

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://github.com/dtolnay/anyhow) | dependencies | patch | `1.0.66` -> `1.0.71` | | [argon2](https://github.com/RustCrypto/password-hashes) | dependencies | minor | `0.4` -> `0.5` | | [async-graphql](https://github.com/async-graphql/async-graphql) | dependencies | major | `4.0.16` -> `5.0.9` | | [axum](https://github.com/tokio-rs/axum) | dependencies | minor | `0.5.17` -> `0.6.18` | | [cookie](https://github.com/SergioBenitez/cookie-rs) | dependencies | minor | `0.16` -> `0.17` | | [mockall](https://github.com/asomers/mockall) | dependencies | patch | `0.11.3` -> `0.11.4` | | [serde](https://serde.rs) ([source](https://github.com/serde-rs/serde)) | dependencies | patch | `1.0.147` -> `1.0.163` | | [serde_json](https://github.com/serde-rs/json) | dependencies | patch | `1.0.89` -> `1.0.96` | | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | dependencies | minor | `1.22.0` -> `1.28.1` | | [tower-http](https://github.com/tower-rs/tower-http) | dependencies | minor | `0.3.4` -> `0.4.0` | | [tower-http](https://github.com/tower-rs/tower-http) | dependencies | minor | `0.3` -> `0.4` | | [tracing-subscriber](https://tokio.rs) ([source](https://github.com/tokio-rs/tracing)) | dependencies | patch | `0.3.16` -> `0.3.17` | | [uuid](https://github.com/uuid-rs/uuid) | dependencies | minor | `1.2.2` -> `1.3.3` | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>dtolnay/anyhow</summary> ### [`v1.0.71`](https://github.com/dtolnay/anyhow/releases/tag/1.0.71) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.70...1.0.71) - Documentation improvements ### [`v1.0.70`](https://github.com/dtolnay/anyhow/releases/tag/1.0.70) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.69...1.0.70) - Update syn dependency to 2.x ### [`v1.0.69`](https://github.com/dtolnay/anyhow/releases/tag/1.0.69) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.68...1.0.69) - Documentation improvements ### [`v1.0.68`](https://github.com/dtolnay/anyhow/releases/tag/1.0.68) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.67...1.0.68) - Opt out of `-Zrustdoc-scrape-examples` on docs.rs for now ### [`v1.0.67`](https://github.com/dtolnay/anyhow/releases/tag/1.0.67) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.66...1.0.67) - Improve the backtrace captured when `context()` is used on an `Option` ([#&#8203;280](https://github.com/dtolnay/anyhow/issues/280)) </details> <details> <summary>RustCrypto/password-hashes</summary> ### [`v0.5.0`](https://github.com/RustCrypto/password-hashes/blob/HEAD/argon2/CHANGELOG.md#&#8203;050-2023-03-04) ##### Added - Key derivation usage example ([#&#8203;366]) - Inherent constants for `Params` recommendations ([#&#8203;387]) ##### Changed - Merge `Argon2` and `Instance` structs ([#&#8203;247]) - Refactor `ParamsBuilder` to make it more ergonomic ([#&#8203;247]) - Bump `password-hash` dependency to v0.5 ([#&#8203;383]) - Adopt OWASP recommended default `Params` ([#&#8203;386]) - MSRV 1.65 ([#&#8203;391]) ##### Fixed - Erroneous docs for `m_cost` and `Block` ([#&#8203;247]) - Allow `zeroize` in heapless environments (i.e. without `alloc`) ([#&#8203;374]) ##### Removed - `Memory` struct ([#&#8203;247]) - Unsound `parallel` feature - see [#&#8203;380] ([#&#8203;247]) [#&#8203;247]: https://github.com/RustCrypto/password-hashes/pull/247 [#&#8203;366]: https://github.com/RustCrypto/password-hashes/pull/366 [#&#8203;374]: https://github.com/RustCrypto/password-hashes/pull/374 [#&#8203;380]: https://github.com/RustCrypto/password-hashes/pull/380 [#&#8203;383]: https://github.com/RustCrypto/password-hashes/pull/383 [#&#8203;386]: https://github.com/RustCrypto/password-hashes/pull/386 [#&#8203;387]: https://github.com/RustCrypto/password-hashes/pull/387 [#&#8203;391]: https://github.com/RustCrypto/password-hashes/pull/391 ### [`v0.4.1`](https://github.com/RustCrypto/password-hashes/blob/HEAD/argon2/CHANGELOG.md#&#8203;041-2022-06-27) ##### Added - `argon2::RECOMMENDED_SALT_LEN` ([#&#8203;307]) [#&#8203;307]: https://github.com/RustCrypto/password-hashes/pull/307 </details> <details> <summary>async-graphql/async-graphql</summary> ### [`v5.0.9`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;509-2023-05-25) - Prevent input check stack overflow [#&#8203;1293](https://github.com/async-graphql/async-graphql/pull/1293) - Change batch requests to run concurrently [#&#8203;1290](https://github.com/async-graphql/async-graphql/issues/1290) ### [`v5.0.8`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;508-2023-05-09) - Improve documentation about DataloaderImprove documentation about Dataloader [#&#8203;1282](https://github.com/async-graphql/async-graphql/pull/1282) - Prevent recursive input type checking from hitting stack overflow [#&#8203;1284](https://github.com/async-graphql/async-graphql/pull/1284) - update MSRV to `1.65.0` ### [`v5.0.7`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;507-2023-03-25) - Disable default-features in workspace.dependencies [#&#8203;1232](https://github.com/async-graphql/async-graphql/pull/1232) - Copy edit extensions section of The Book [#&#8203;1234](https://github.com/async-graphql/async-graphql/pull/1234) - disable default features for async-graphql in workspace dependencies [#&#8203;1237](https://github.com/async-graphql/async-graphql/pull/1237) - chore: make edge field and connection field shareable [#&#8203;1246](https://github.com/async-graphql/async-graphql/pull/1246) - Added 3 new fns to the ObjectAccessor. [#&#8203;1244](https://github.com/async-graphql/async-graphql/pull/1244) - Dataloader futures lose span context [#&#8203;1256](https://github.com/async-graphql/async-graphql/pull/1256) - Propagate ErrorExtensionValues when calling InputValueError.propagate [#&#8203;1257](https://github.com/async-graphql/async-graphql/pull/1257) - Correct error string for object in ValueAccessor [#&#8203;1260](https://github.com/async-graphql/async-graphql/pull/1260) ### [`v5.0.6`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;506-2023-02-11) - docs: Tweak dataloader example and link to full example [#&#8203;1194](https://github.com/async-graphql/async-graphql/pull/1194) - docs: Mention the importance of using dataloader with federation/entities [#&#8203;1194](https://github.com/async-graphql/async-graphql/pull/1194) - chore: enable GraphiQL/Playground via feature flag [#&#8203;1202](https://github.com/async-graphql/async-graphql/pull/1202) - fix: Export directives to federation SDL so they can be composed. [#&#8203;1209](https://github.com/async-graphql/async-graphql/pull/1209) - Fix doc contents details and add AutoCorrect lint to CI. [#&#8203;1210](https://github.com/async-graphql/async-graphql/pull/1210) - fix: provide correct type for \_service with dynamic schema [#&#8203;1212](https://github.com/async-graphql/async-graphql/pull/1212) - feat(subscription): support generics in MergedSubscription types [#&#8203;1222](https://github.com/async-graphql/async-graphql/pull/1222) - feat: modify Connection to allow optionally disable nodes field in gql output. [#&#8203;1218](https://github.com/async-graphql/async-graphql/pull/1218) - fixes interface type condition query [#&#8203;1228](https://github.com/async-graphql/async-graphql/pull/1228) - fixes [#&#8203;1226](https://github.com/async-graphql/async-graphql/issues/1226) - update MSRV to `1.64.0` ### [`v5.0.5`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;505-2023-01-03) - dynamic schema: add boxed_any function [#&#8203;1179](https://github.com/async-graphql/async-graphql/pull/1179) - Improve GraphiQL v2 [#&#8203;1182](https://github.com/async-graphql/async-graphql/pull/1182) - Fix: \__Type.oneOf to \__Type.isOneOf [#&#8203;1188](https://github.com/async-graphql/async-graphql/pull/1188) - Implemente From<ID> for ConstValue [#&#8203;1169](https://github.com/async-graphql/async-graphql/pull/1169) - Fixes [#&#8203;1192](https://github.com/async-graphql/async-graphql/issues/1192) ### [`v5.0.4`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;504-2022-12-17) - Fix named_list_nn [#&#8203;1172](https://github.com/async-graphql/async-graphql/pull/1172) - Add `DynamicRequestExt::root_value` to specify the root value for the request - Change `CustomValidator::check` returns error type from `String` to `InputValueError<T>`. - Add support that custom validators can set error extensions. [#&#8203;1174](https://github.com/async-graphql/async-graphql/issues/1174) ### [`v5.0.3`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;503-2022-12-07) - Fixes [#&#8203;1163](https://github.com/async-graphql/async-graphql/issues/1163) - Fixes [#&#8203;1161](https://github.com/async-graphql/async-graphql/issues/1161) ### [`v5.0.2`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;502-2022-11-30) - Fixes [#&#8203;1157](https://github.com/async-graphql/async-graphql/issues/1157) ### [`v5.0.1`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;501-2022-11-29) - Add boolean dynamic ValueAccessor method [#&#8203;1153](https://github.com/async-graphql/async-graphql/pull/1153) ### [`v5.0.0`](https://github.com/async-graphql/async-graphql/blob/HEAD/CHANGELOG.md#&#8203;500-2022-11-27) - Update MSRV to `1.60.0` - \[async-graphql-axum] bump axum from `0.5.1` to `0.6.0` [#&#8203;1106](https://github.com/async-graphql/async-graphql/issues/1106) </details> <details> <summary>tokio-rs/axum</summary> ### [`v0.6.18`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.18): axum - v0.6.18 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.17...axum-v0.6.18) - **fixed:** Don't remove the `Sec-WebSocket-Key` header in `WebSocketUpgrade` ([#&#8203;1972]) [#&#8203;1972]: https://github.com/tokio-rs/axum/pull/1972 ### [`v0.6.17`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.17): axum - v0.6.17 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.16...axum-v0.6.17) - **fixed:** Fix fallbacks causing a panic on `CONNECT` requests ([#&#8203;1958]) [#&#8203;1958]: https://github.com/tokio-rs/axum/pull/1958 ### [`v0.6.16`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.16): axum - v0.6.16 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.15...axum-v0.6.16) - **fixed:** Don't allow extracting `MatchedPath` in fallbacks ([#&#8203;1934]) - **fixed:** Fix panic if `Router` with something nested at `/` was used as a fallback ([#&#8203;1934]) - **added:** Document that `Router::new().fallback(...)` isn't optimal ([#&#8203;1940]) [#&#8203;1934]: https://github.com/tokio-rs/axum/pull/1934 [#&#8203;1940]: https://github.com/tokio-rs/axum/pull/1940 ### [`v0.6.15`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.15): axum - v0.6.15 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.14...axum-v0.6.15) - **fixed:** Removed additional leftover debug messages ([#&#8203;1927]) [#&#8203;1927]: https://github.com/tokio-rs/axum/pull/1927 ### [`v0.6.14`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.14): axum - v0.6.14 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.13...axum-v0.6.14) - **fixed:** Removed leftover "path_router hit" debug message ([#&#8203;1925]) [#&#8203;1925]: https://github.com/tokio-rs/axum/pull/1925 ### [`v0.6.13`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.13): axum - v0.6.13 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.12...axum-v0.6.13) - **added:** Log rejections from built-in extractors with the `axum::rejection=trace` target ([#&#8203;1890]) - **fixed:** Fixed performance regression with `Router::nest` introduced in 0.6.0. `nest` now flattens the routes which performs better ([#&#8203;1711]) - **fixed:** Extracting `MatchedPath` in nested handlers now gives the full matched path, including the nested path ([#&#8203;1711]) - **added:** Implement `Deref` and `DerefMut` for built-in extractors ([#&#8203;1922]) [#&#8203;1711]: https://github.com/tokio-rs/axum/pull/1711 [#&#8203;1890]: https://github.com/tokio-rs/axum/pull/1890 [#&#8203;1922]: https://github.com/tokio-rs/axum/pull/1922 ### [`v0.6.12`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.12): axum - v0.6.12 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.11...axum-v0.6.12) - **added:** Implement `IntoResponse` for `MultipartError` ([#&#8203;1861]) - **fixed:** More clearly document what wildcards matches ([#&#8203;1873]) [#&#8203;1861]: https://github.com/tokio-rs/axum/pull/1861 [#&#8203;1873]: https://github.com/tokio-rs/axum/pull/1873 ### [`v0.6.11`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.11): axum - v0.6.11 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.10...axum-v0.6.11) - **fixed:** Don't require `S: Debug` for `impl Debug for Router<S>` ([#&#8203;1836]) - **fixed:** Clone state a bit less when handling requests ([#&#8203;1837]) - **fixed:** Unpin itoa dependency ([#&#8203;1815]) [#&#8203;1815]: https://github.com/tokio-rs/axum/pull/1815 [#&#8203;1836]: https://github.com/tokio-rs/axum/pull/1836 [#&#8203;1837]: https://github.com/tokio-rs/axum/pull/1837 ### [`v0.6.10`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.10): axum - v0.6.10 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.9...axum-v0.6.10) - **fixed:** Add `#[must_use]` attributes to types that do nothing unless used ([#&#8203;1809]) - **fixed:** Gracefully handle missing headers in the `TypedHeader` extractor ([#&#8203;1810]) - **fixed:** Fix routing issues when loading a `Router` via a dynamic library ([#&#8203;1806]) [#&#8203;1806]: https://github.com/tokio-rs/axum/pull/1806 [#&#8203;1809]: https://github.com/tokio-rs/axum/pull/1809 [#&#8203;1810]: https://github.com/tokio-rs/axum/pull/1810 ### [`v0.6.9`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.9): axum - v0.6.9 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.8...axum-v0.6.9) - **changed:** Update to tower-http 0.4. axum is still compatible with tower-http 0.3 ([#&#8203;1783]) [#&#8203;1783]: https://github.com/tokio-rs/axum/pull/1783 ### [`v0.6.8`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.8): axum - v0.6.8 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.7...axum-v0.6.8) - **fixed:** Fix `Allow` missing from routers with middleware ([#&#8203;1773]) - **added:** Add `KeepAlive::event` for customizing the event sent for SSE keep alive ([#&#8203;1729]) [#&#8203;1729]: https://github.com/tokio-rs/axum/pull/1729 [#&#8203;1773]: https://github.com/tokio-rs/axum/pull/1773 ### [`v0.6.7`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.7): axum - v0.6.7 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.6...axum-v0.6.7) - **added:** Add `FormRejection::FailedToDeserializeFormBody` which is returned if the request body couldn't be deserialized into the target type, as opposed to `FailedToDeserializeForm` which is only for query parameters ([#&#8203;1683]) - **added:** Add `MockConnectInfo` for setting `ConnectInfo` during tests ([#&#8203;1767]) [#&#8203;1683]: https://github.com/tokio-rs/axum/pull/1683 [#&#8203;1767]: https://github.com/tokio-rs/axum/pull/1767 ### [`v0.6.6`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.6): axum - v0.6.6 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.5...axum-v0.6.6) - **fixed:** Enable passing `MethodRouter` to `Router::fallback` ([#&#8203;1730]) [#&#8203;1730]: https://github.com/tokio-rs/axum/pull/1730 ### [`v0.6.5`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.5): axum - v0.6.5 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.4...axum-v0.6.5) - **fixed:** Fix `#[debug_handler]` sometimes giving wrong borrow related suggestions ([#&#8203;1710]) - Document gotchas related to using `impl IntoResponse` as the return type from handler functions ([#&#8203;1736]) [#&#8203;1710]: https://github.com/tokio-rs/axum/pull/1710 [#&#8203;1736]: https://github.com/tokio-rs/axum/pull/1736 ### [`v0.6.4`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.4): axum - v0.6.4 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.3...axum-v0.6.4) - Depend on axum-macros 0.3.2 ### [`v0.6.3`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.3): axum - v0.6.3 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.2...axum-v0.6.3) - **added:** Implement `IntoResponse` for `&'static [u8; N]` and `[u8; N]` ([#&#8203;1690]) - **fixed:** Make `Path` support types using `serde::Deserializer::deserialize_any` ([#&#8203;1693]) - **added:** Add `RawPathParams` ([#&#8203;1713]) - **added:** Implement `Clone` and `Service` for `axum::middleware::Next` ([#&#8203;1712]) - **fixed:** Document required tokio features to run "Hello, World!" example ([#&#8203;1715]) [#&#8203;1690]: https://github.com/tokio-rs/axum/pull/1690 [#&#8203;1693]: https://github.com/tokio-rs/axum/pull/1693 [#&#8203;1712]: https://github.com/tokio-rs/axum/pull/1712 [#&#8203;1713]: https://github.com/tokio-rs/axum/pull/1713 [#&#8203;1715]: https://github.com/tokio-rs/axum/pull/1715 ### [`v0.6.2`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.2): axum - v0.6.2 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.1...axum-v0.6.2) - **added:** Add `body_text` and `status` methods to built-in rejections ([#&#8203;1612]) - **added:** Enable the `runtime` feature of `hyper` when using `tokio` ([#&#8203;1671]) [#&#8203;1612]: https://github.com/tokio-rs/axum/pull/1612 [#&#8203;1671]: https://github.com/tokio-rs/axum/pull/1671 ### [`v0.6.1`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.1): axum - v0.6.1 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.6.0...axum-v0.6.1) - **added:** Expand the docs for `Router::with_state` ([#&#8203;1580]) [#&#8203;1580]: https://github.com/tokio-rs/axum/pull/1580 ### [`v0.6.0`](https://github.com/tokio-rs/axum/releases/tag/axum-v0.6.0): axum - v0.6.0 [Compare Source](https://github.com/tokio-rs/axum/compare/axum-v0.5.17...axum-v0.6.0) #### Routing - **fixed:** Nested routers are now allowed to have fallbacks ([#&#8203;1521]): ```rust let api_router = Router::new() .route("/users", get(|| { ... })) .fallback(api_fallback); let app = Router::new() // this would panic in 0.5 but in 0.6 it just works // // requests starting with `/api` but not handled by `api_router` // will go to `/api_fallback` .nest("/api", api_router); ``` The outer router's fallback will still apply if a nested router doesn't have its own fallback: ```rust // this time without a fallback let api_router = Router::new().route("/users", get(|| { ... })); let app = Router::new() .nest("/api", api_router) // `api_fallback` will inherit this fallback .fallback(app_fallback); ``` - **breaking:** The request `/foo/` no longer matches `/foo/*rest`. If you want to match `/foo/` you have to add a route specifically for that ([#&#8203;1086]) For example: ```rust use axum::{Router, routing::get, extract::Path}; let app = Router::new() // this will match `/foo/bar/baz` .route("/foo/*rest", get(handler)) // this will match `/foo/` .route("/foo/", get(handler)) // if you want `/foo` to match you must also add an explicit route for it .route("/foo", get(handler)); async fn handler( // use an `Option` because `/foo/` and `/foo` don't have any path params params: Option<Path<String>>, ) {} ``` - **breaking:** Path params for wildcard routes no longer include the prefix `/`. e.g. `/foo.js` will match `/*filepath` with a value of `foo.js`, *not* `/foo.js` ([#&#8203;1086]) For example: ```rust use axum::{Router, routing::get, extract::Path}; let app = Router::new().route("/foo/*rest", get(handler)); async fn handler( Path(params): Path<String>, ) { // for the request `/foo/bar/baz` the value of `params` will be `bar/baz` // // on 0.5 it would be `/bar/baz` } ``` - **fixed:** Routes like `/foo` and `/*rest` are no longer considered overlapping. `/foo` will take priority ([#&#8203;1086]) For example: ```rust use axum::{Router, routing::get}; let app = Router::new() // this used to not be allowed but now just works .route("/foo/*rest", get(foo)) .route("/foo/bar", get(bar)); async fn foo() {} async fn bar() {} ``` - **breaking:** Automatic trailing slash redirects have been removed. Previously if you added a route for `/foo`, axum would redirect calls to `/foo/` to `/foo` (or vice versa for `/foo/`): ```rust use axum::{Router, routing::get}; let app = Router::new() // a request to `GET /foo/` will now get `404 Not Found` // whereas in 0.5 axum would redirect to `/foo` // // same goes the other way if you had the route `/foo/` // axum will no longer redirect from `/foo` to `/foo/` .route("/foo", get(handler)); async fn handler() {} ``` Either explicitly add routes for `/foo` and `/foo/` or use `axum_extra::routing::RouterExt::route_with_tsr` if you want the old behavior ([#&#8203;1119]) - **breaking:** `Router::fallback` now only accepts `Handler`s (similarly to what `get`, `post`, etc. accept). Use the new `Router::fallback_service` for setting any `Service` as the fallback ([#&#8203;1155]) This fallback on 0.5: ```rust use axum::{Router, handler::Handler}; let app = Router::new().fallback(fallback.into_service()); async fn fallback() {} ``` Becomes this in 0.6 ```rust use axum::Router; let app = Router::new().fallback(fallback); async fn fallback() {} ``` - **changed:** `Router::nest` now only accepts `Router`s, the general-purpose `Service` nesting method has been renamed to `nest_service` ([#&#8203;1368]) - **breaking:** Allow `Error: Into<Infallible>` for `Route::{layer, route_layer}` ([#&#8203;924]) - **breaking:** `MethodRouter` now panics on overlapping routes ([#&#8203;1102]) - **breaking:** `Router::route` now only accepts `MethodRouter`s created with `get`, `post`, etc. Use the new `Router::route_service` for routing to any `Service`s ([#&#8203;1155]) - **breaking:** Adding a `.route_layer` onto a `Router` or `MethodRouter` without any routes will now result in a panic. Previously, this just did nothing. [#&#8203;1327] - **breaking:** `RouterService` has been removed since `Router` now implements `Service` when the state is `()`. Use `Router::with_state` to provide the state and get a `Router<()>`. Note that `RouterService` only existed in the pre-releases, not 0.5 ([#&#8203;1552]) #### Extractors - **added:** Added new type safe `State` extractor. This can be used with `Router::with_state` and gives compile errors for missing states, whereas `Extension` would result in runtime errors ([#&#8203;1155]) We recommend migrating from `Extension` to `State` for sharing application state since that is more type safe and faster. That is done by using `Router::with_state` and `State`. This setup in 0.5 ```rust use axum::{routing::get, Extension, Router}; let app = Router::new() .route("/", get(handler)) .layer(Extension(AppState {})); async fn handler(Extension(app_state): Extension<AppState>) {} #[derive(Clone)] struct AppState {} ``` Becomes this in 0.6 using `State`: ```rust use axum::{routing::get, extract::State, Router}; let app = Router::new() .route("/", get(handler)) .with_state(AppState {}); async fn handler(State(app_state): State<AppState>) {} #[derive(Clone)] struct AppState {} ``` If you have multiple extensions, you can use fields on `AppState` and implement `FromRef`: ```rust use axum::{extract::{State, FromRef}, routing::get, Router}; let state = AppState { client: HttpClient {}, database: Database {}, }; let app = Router::new().route("/", get(handler)).with_state(state); async fn handler( State(client): State<HttpClient>, State(database): State<Database>, ) {} // the derive requires enabling the "macros" feature #[derive(Clone, FromRef)] struct AppState { client: HttpClient, database: Database, } #[derive(Clone)] struct HttpClient {} #[derive(Clone)] struct Database {} ``` - **breaking:** It is now only possible for one extractor per handler to consume the request body. In 0.5 doing so would result in runtime errors but in 0.6 it is a compile error ([#&#8203;1272]) axum enforces this by only allowing the *last* extractor to consume the request. For example: ```rust use axum::{Json, http::HeaderMap}; // This wont compile on 0.6 because both `Json` and `String` need to consume // the request body. You can use either `Json` or `String`, but not both. async fn handler_1( json: Json<serde_json::Value>, string: String, ) {} // This won't work either since `Json` is not the last extractor. async fn handler_2( json: Json<serde_json::Value>, headers: HeaderMap, ) {} // This works! async fn handler_3( headers: HeaderMap, json: Json<serde_json::Value>, ) {} ``` This is done by reworking the `FromRequest` trait and introducing a new `FromRequestParts` trait. If your extractor needs to consume the request body then you should implement `FromRequest`, otherwise implement `FromRequestParts`. This extractor in 0.5: ```rust struct MyExtractor { /* ... */ } #[async_trait] impl<B> FromRequest<B> for MyExtractor where B: Send, { type Rejection = StatusCode; async fn from_request(req: &mut RequestParts<B>) -> Result<Self, Self::Rejection> { // ... } } ``` Becomes this in 0.6: ```rust use axum::{ extract::{FromRequest, FromRequestParts}, http::{StatusCode, Request, request::Parts}, async_trait, }; struct MyExtractor { /* ... */ } // implement `FromRequestParts` if you don't need to consume the request body #[async_trait] impl<S> FromRequestParts<S> for MyExtractor where S: Send + Sync, { type Rejection = StatusCode; async fn from_request_parts(parts: &mut Parts, state: &S) -> Result<Self, Self::Rejection> { // ... } } // implement `FromRequest` if you do need to consume the request body #[async_trait] impl<S, B> FromRequest<S, B> for MyExtractor where S: Send + Sync, B: Send + 'static, { type Rejection = StatusCode; async fn from_request(req: Request<B>, state: &S) -> Result<Self, Self::Rejection> { // ... } } ``` For an example of how to write an extractor that accepts different `Content-Types` see the [`parse-body-based-on-content-type`][parse-body-based-on-content-type] example. - **added:** `FromRequest` and `FromRequestParts` derive macro re-exports from [`axum-macros`][axum-macros] behind the `macros` feature ([#&#8203;1352]) - **added:** Add `RequestExt` and `RequestPartsExt` which adds convenience methods for running extractors to `http::Request` and `http::request::Parts` ([#&#8203;1301]) - **added**: `JsonRejection` now displays the path at which a deserialization error occurred ([#&#8203;1371]) - **added:** Add `extract::RawForm` for accessing raw urlencoded query bytes or request body ([#&#8203;1487]) - **fixed:** Used `400 Bad Request` for `FailedToDeserializeQueryString` rejections, instead of `422 Unprocessable Entity` ([#&#8203;1387]) - **changed**: The inner error of a `JsonRejection` is now `serde_path_to_error::Error<serde_json::Error>`. Previously it was `serde_json::Error` ([#&#8203;1371]) - **changed:** The default body limit now applies to the `Multipart` extractor ([#&#8203;1420]) - **breaking:** `ContentLengthLimit` has been removed. Use `DefaultBodyLimit` instead ([#&#8203;1400]) - **breaking:** `RequestParts` has been removed as part of the `FromRequest` rework ([#&#8203;1272]) - **breaking:** `BodyAlreadyExtracted` has been removed ([#&#8203;1272]) - **breaking:** The following types or traits have a new `S` type param which represents the state ([#&#8203;1155]): - `Router`, defaults to `()` - `MethodRouter`, defaults to `()` - `FromRequest`, no default - `Handler`, no default - **breaking:** `MatchedPath` can now no longer be extracted in middleware for nested routes. In previous versions it returned invalid data when extracted from a middleware applied to a nested router. `MatchedPath` can still be extracted from handlers and middleware that aren't on nested routers ([#&#8203;1462]) - **breaking:** Rename `FormRejection::FailedToDeserializeQueryString` to `FormRejection::FailedToDeserializeForm` ([#&#8203;1496]) #### Middleware - **added:** Support running extractors on `middleware::from_fn` functions ([#&#8203;1088]) - **added**: Add `middleware::from_fn_with_state` to enable running extractors that require state ([#&#8203;1342]) - **added:** Add `middleware::from_extractor_with_state` ([#&#8203;1396]) - **added:** Add `map_request`, `map_request_with_state` for transforming the request with an async function ([#&#8203;1408]) - **added:** Add `map_response`, `map_response_with_state` for transforming the response with an async function ([#&#8203;1414]) - **added:** Support any middleware response that implements `IntoResponse` ([#&#8203;1152]) - **breaking:** Remove `extractor_middleware` which was previously deprecated. Use `axum::middleware::from_extractor` instead ([#&#8203;1077]) - **breaking:** Require middleware added with `Handler::layer` to have `Infallible` as the error type ([#&#8203;1152]) #### Misc - **added:** Support compiling to WASM. See the `simple-router-wasm` example for more details ([#&#8203;1382]) - **added:** Add `ServiceExt` with methods for turning any `Service` into a `MakeService` similarly to `Router::into_make_service` ([#&#8203;1302]) - **added:** String and binary `From` impls have been added to `extract::ws::Message` to be more inline with `tungstenite` ([#&#8203;1421]) - **added:** Add `#[derive(axum::extract::FromRef)]` ([#&#8203;1430]) - **added:** Add `accept_unmasked_frames` setting in WebSocketUpgrade ([#&#8203;1529]) - **added:** Add `WebSocketUpgrade::on_failed_upgrade` to customize what to do when upgrading a connection fails ([#&#8203;1539]) - **fixed:** Annotate panicking functions with `#[track_caller]` so the error message points to where the user added the invalid route, rather than somewhere internally in axum ([#&#8203;1248]) - **changed:** axum's MSRV is now 1.60 ([#&#8203;1239]) - **changed:** For methods that accept some `S: Service`, the bounds have been relaxed so the response type must implement `IntoResponse` rather than being a literal `Response` - **breaking:** New `tokio` default feature needed for WASM support. If you don't need WASM support but have `default_features = false` for other reasons you likely need to re-enable the `tokio` feature ([#&#8203;1382]) - **breaking:** `handler::{WithState, IntoService}` are merged into one type, named `HandlerService` ([#&#8203;1418]) [#&#8203;924]: https://github.com/tokio-rs/axum/pull/924 [#&#8203;1077]: https://github.com/tokio-rs/axum/pull/1077 [#&#8203;1086]: https://github.com/tokio-rs/axum/pull/1086 [#&#8203;1088]: https://github.com/tokio-rs/axum/pull/1088 [#&#8203;1102]: https://github.com/tokio-rs/axum/pull/1102 [#&#8203;1119]: https://github.com/tokio-rs/axum/pull/1119 [#&#8203;1152]: https://github.com/tokio-rs/axum/pull/1152 [#&#8203;1155]: https://github.com/tokio-rs/axum/pull/1155 [#&#8203;1239]: https://github.com/tokio-rs/axum/pull/1239 [#&#8203;1248]: https://github.com/tokio-rs/axum/pull/1248 [#&#8203;1272]: https://github.com/tokio-rs/axum/pull/1272 [#&#8203;1301]: https://github.com/tokio-rs/axum/pull/1301 [#&#8203;1302]: https://github.com/tokio-rs/axum/pull/1302 [#&#8203;1327]: https://github.com/tokio-rs/axum/pull/1327 [#&#8203;1342]: https://github.com/tokio-rs/axum/pull/1342 [#&#8203;1346]: https://github.com/tokio-rs/axum/pull/1346 [#&#8203;1352]: https://github.com/tokio-rs/axum/pull/1352 [#&#8203;1368]: https://github.com/tokio-rs/axum/pull/1368 [#&#8203;1371]: https://github.com/tokio-rs/axum/pull/1371 [#&#8203;1382]: https://github.com/tokio-rs/axum/pull/1382 [#&#8203;1387]: https://github.com/tokio-rs/axum/pull/1387 [#&#8203;1389]: https://github.com/tokio-rs/axum/pull/1389 [#&#8203;1396]: https://github.com/tokio-rs/axum/pull/1396 [#&#8203;1397]: https://github.com/tokio-rs/axum/pull/1397 [#&#8203;1400]: https://github.com/tokio-rs/axum/pull/1400 [#&#8203;1408]: https://github.com/tokio-rs/axum/pull/1408 [#&#8203;1414]: https://github.com/tokio-rs/axum/pull/1414 [#&#8203;1418]: https://github.com/tokio-rs/axum/pull/1418 [#&#8203;1420]: https://github.com/tokio-rs/axum/pull/1420 [#&#8203;1421]: https://github.com/tokio-rs/axum/pull/1421 [#&#8203;1430]: https://github.com/tokio-rs/axum/pull/1430 [#&#8203;1462]: https://github.com/tokio-rs/axum/pull/1462 [#&#8203;1487]: https://github.com/tokio-rs/axum/pull/1487 [#&#8203;1496]: https://github.com/tokio-rs/axum/pull/1496 [#&#8203;1521]: https://github.com/tokio-rs/axum/pull/1521 [#&#8203;1529]: https://github.com/tokio-rs/axum/pull/1529 [#&#8203;1532]: https://github.com/tokio-rs/axum/pull/1532 [#&#8203;1539]: https://github.com/tokio-rs/axum/pull/1539 [#&#8203;1552]: https://github.com/tokio-rs/axum/pull/1552 [`axum-macros`]: https://docs.rs/axum-macros/latest/axum_macros/ [`parse-body-based-on-content-type`]: https://github.com/tokio-rs/axum/blob/main/examples/parse-body-based-on-content-type/src/main.rs </details> <details> <summary>SergioBenitez/cookie-rs</summary> ### [`v0.17.0`](https://github.com/SergioBenitez/cookie-rs/blob/HEAD/CHANGELOG.md#Version-0170-Jan-22-2022) [Compare Source](https://github.com/SergioBenitez/cookie-rs/compare/0.16.2...0.17.0) ##### Breaking Changes - Cookie parsing no longer removes a `.` `Domain` prefix. `Cookie::domain()` now removes a `.` prefix before returning. As these changes are inverses, they are not likely observable. The change only affects manually set `domain` values via the `.domain()` builder method, the `set_domain()` setter method, or similar, which will now have a prefix of `.` removed when returned by `Cookie::domain()`. This results in more consistent treatment of `Domain` values. ##### New Features - Added `Cookie::split_parse()` and `Cookie::split_parse_encoded()` methods. The methods split a `;`-joined cookie string and parse/decode the split values. They return a newly introduced iterator value of type `SplitCookies` over the parse results. ##### General Changes and Fixes - Parsing fuzzers were introduced and run for 48 CPU hours without failure. - `base64` was updated to `0.21`. ### [`v0.16.2`](https://github.com/SergioBenitez/cookie-rs/blob/HEAD/CHANGELOG.md#Version-0162-Dec-16-2022) [Compare Source](https://github.com/SergioBenitez/cookie-rs/compare/0.16.1...0.16.2) ##### General Changes - `base64` was updated to `0.20`. ### [`v0.16.1`](https://github.com/SergioBenitez/cookie-rs/blob/HEAD/CHANGELOG.md#Version-0161-Sep-25-2022) [Compare Source](https://github.com/SergioBenitez/cookie-rs/compare/0.16.0...0.16.1) ##### Changes and Fixes - The `,`, `(`, and `)` are percent-encoded/decoded when encoding is used. - The `aes-gcm` dependency was updated to 0.10. </details> <details> <summary>asomers/mockall</summary> ### [`v0.11.4`](https://github.com/asomers/mockall/blob/HEAD/CHANGELOG.md#&#8203;0114---2023-03-26) [Compare Source](https://github.com/asomers/mockall/compare/v0.11.3...v0.11.4) ##### Fixed - Static methods' expectations will now be cleared during a panic. ([#&#8203;443](https://github.com/asomers/mockall/pull/443)) - The `checkpoint` method now works correctly even after a panic due to too many method calls. ([#&#8203;472](https://github.com/asomers/mockall/pull/472)) - Methods with unknown size type bounds can now be mocked. ([#&#8203;421](https://github.com/asomers/mockall/pull/421)) </details> <details> <summary>serde-rs/serde</summary> ### [`v1.0.163`](https://github.com/serde-rs/serde/releases/tag/v1.0.163) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.162...v1.0.163) - Eliminate build script from serde_derive crate to slightly reduce build time ([#&#8203;2442](https://github.com/serde-rs/serde/issues/2442), thanks [@&#8203;taiki-e](https://github.com/taiki-e)) ### [`v1.0.162`](https://github.com/serde-rs/serde/releases/tag/v1.0.162) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.161...v1.0.162) - Support deserializing flattened adjacently tagged enums from data formats which represent fields as bytes, such as the `csv` crate ([#&#8203;2377](https://github.com/serde-rs/serde/issues/2377), thanks [@&#8203;mfro](https://github.com/mfro)) ```rust #[derive(Deserialize)] pub struct Record { common: u64, #[serde(flatten)] kind: Kind, } #[derive(Deserialize)] #[serde(tag = "kind", content = "parameter", rename_all = "lowercase")] enum Kind { Foo(u64), Bar(bool), } ``` ```csv common,kind,parameter 1,foo,42 2,bar,true ``` ### [`v1.0.161`](https://github.com/serde-rs/serde/releases/tag/v1.0.161) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.160...v1.0.161) - Improve error messages produced by serde_test on test failure ([#&#8203;2435](https://github.com/serde-rs/serde/issues/2435), thanks [@&#8203;Mingun](https://github.com/Mingun)) ### [`v1.0.160`](https://github.com/serde-rs/serde/releases/tag/v1.0.160) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.159...v1.0.160) - Make derived serializer/deserializer internals `doc(hidden)` ([#&#8203;2426](https://github.com/serde-rs/serde/issues/2426), thanks [@&#8203;compiler-errors](https://github.com/compiler-errors)) ### [`v1.0.159`](https://github.com/serde-rs/serde/releases/tag/v1.0.159) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.158...v1.0.159) - Accept empty #\[serde()] attribute ([#&#8203;2422](https://github.com/serde-rs/serde/issues/2422)) ### [`v1.0.158`](https://github.com/serde-rs/serde/releases/tag/v1.0.158) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.157...v1.0.158) - Fix *"expected serde crate attribute to be a string"* error when using macro_rules metavariable inside of serde attribute: `#[serde(crate = $serde_path)]` ([#&#8203;2409](https://github.com/serde-rs/serde/issues/2409)) ### [`v1.0.157`](https://github.com/serde-rs/serde/releases/tag/v1.0.157) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.156...v1.0.157) - Update syn dependency to 2.x ### [`v1.0.156`](https://github.com/serde-rs/serde/releases/tag/v1.0.156) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.155...v1.0.156) - Documentation improvements ### [`v1.0.155`](https://github.com/serde-rs/serde/releases/tag/v1.0.155) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.154...v1.0.155) - Support `Serialize` and `Deserialize` impls for `core::ffi::CStr` and `alloc::ffi::CString` without "std" feature ([#&#8203;2374](https://github.com/serde-rs/serde/issues/2374), thanks [@&#8203;safarir](https://github.com/safarir)) ### [`v1.0.154`](https://github.com/serde-rs/serde/releases/tag/v1.0.154) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.153...v1.0.154) - Fix "undeclared lifetime" error in generated code when deriving Deserialize for an enum with both `flatten` and `'static` fields ([#&#8203;2383](https://github.com/serde-rs/serde/issues/2383), thanks [@&#8203;Mingun](https://github.com/Mingun)) ### [`v1.0.153`](https://github.com/serde-rs/serde/releases/tag/v1.0.153) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.152...v1.0.153) - Support `serde(alias = "…")` attribute used inside of flattened struct ([#&#8203;2387](https://github.com/serde-rs/serde/issues/2387), thanks [@&#8203;bebecue](https://github.com/bebecue)) ### [`v1.0.152`](https://github.com/serde-rs/serde/releases/tag/v1.0.152) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.151...v1.0.152) - Documentation improvements ### [`v1.0.151`](https://github.com/serde-rs/serde/releases/tag/v1.0.151) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.150...v1.0.151) - Update `serde::`{`ser`,`de`}`::StdError` to re-export `core::error::Error` when serde is built with `feature="std"` **off** and `feature="unstable"` **on** ([#&#8203;2344](https://github.com/serde-rs/serde/issues/2344)) ### [`v1.0.150`](https://github.com/serde-rs/serde/releases/tag/v1.0.150) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150) - Relax some trait bounds from the `Serialize` impl of `HashMap` and `BTreeMap` ([#&#8203;2334](https://github.com/serde-rs/serde/issues/2334)) - Enable `Serialize` and `Deserialize` impls of `std::sync::atomic` types on more platforms ([#&#8203;2337](https://github.com/serde-rs/serde/issues/2337), thanks [@&#8203;badboy](https://github.com/badboy)) ### [`v1.0.149`](https://github.com/serde-rs/serde/releases/tag/v1.0.149) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149) - Relax some trait bounds from the `Serialize` impl of `BinaryHeap`, `BTreeSet`, and `HashSet` ([#&#8203;2333](https://github.com/serde-rs/serde/issues/2333), thanks [@&#8203;jonasbb](https://github.com/jonasbb)) ### [`v1.0.148`](https://github.com/serde-rs/serde/releases/tag/v1.0.148) [Compare Source](https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.148) - Support `remote` derive for generic types that have private fields ([#&#8203;2327](https://github.com/serde-rs/serde/issues/2327)) </details> <details> <summary>serde-rs/json</summary> ### [`v1.0.96`](https://github.com/serde-rs/json/releases/tag/v1.0.96) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.95...v1.0.96) - Guarantee that `to_writer` only writes valid UTF-8 strings ([#&#8203;1011](https://github.com/serde-rs/json/issues/1011), thanks [@&#8203;stepancheg](https://github.com/stepancheg)) ### [`v1.0.95`](https://github.com/serde-rs/json/releases/tag/v1.0.95) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.94...v1.0.95) - Preserve f32 precision when serializing f32 -> serde_json::Value -> JSON string in "arbitrary_precision" mode ([#&#8203;1004](https://github.com/serde-rs/json/issues/1004), [#&#8203;1005](https://github.com/serde-rs/json/issues/1005)) ### [`v1.0.94`](https://github.com/serde-rs/json/releases/tag/v1.0.94) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.93...v1.0.94) - Fix message duplication between serde_json::Error's `Display` and `source()` ([#&#8203;991](https://github.com/serde-rs/json/issues/991), [#&#8203;992](https://github.com/serde-rs/json/issues/992)) ### [`v1.0.93`](https://github.com/serde-rs/json/releases/tag/v1.0.93) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.92...v1.0.93) - Support 128-bit integers in serde_json::to_value ([#&#8203;982](https://github.com/serde-rs/json/issues/982)) ### [`v1.0.92`](https://github.com/serde-rs/json/releases/tag/v1.0.92) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.91...v1.0.92) - Documentation improvements ### [`v1.0.91`](https://github.com/serde-rs/json/releases/tag/v1.0.91) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.90...v1.0.91) - Opt out of `-Zrustdoc-scrape-examples` on docs.rs for now ### [`v1.0.90`](https://github.com/serde-rs/json/releases/tag/v1.0.90) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.89...v1.0.90) - Documentation improvements </details> <details> <summary>tokio-rs/tokio</summary> ### [`v1.28.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.28.1): Tokio v1.28.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.28.0...tokio-1.28.1) ### 1.28.1 (May 10th, 2023) This release fixes a mistake in the build script that makes `AsFd` implementations unavailable on Rust 1.63. ([#&#8203;5677]) [#&#8203;5677]: https://github.com/tokio-rs/tokio/pull/5677 ### [`v1.28.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.28.0): Tokio v1.28.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.27.0...tokio-1.28.0) ### 1.28.0 (April 25th, 2023) ##### Added - io: add `AsyncFd::async_io` ([#&#8203;5542]) - io: impl BufMut for ReadBuf ([#&#8203;5590]) - net: add `recv_buf` for `UdpSocket` and `UnixDatagram` ([#&#8203;5583]) - sync: add `OwnedSemaphorePermit::semaphore` ([#&#8203;5618]) - sync: add `same_channel` to broadcast channel ([#&#8203;5607]) - sync: add `watch::Receiver::wait_for` ([#&#8203;5611]) - task: add `JoinSet::spawn_blocking` and `JoinSet::spawn_blocking_on` ([#&#8203;5612]) ##### Changed - deps: update windows-sys to 0.48 ([#&#8203;5591]) - io: make `read_to_end` not grow unnecessarily ([#&#8203;5610]) - macros: make entrypoints more efficient ([#&#8203;5621]) - sync: improve Debug impl for `RwLock` ([#&#8203;5647]) - sync: reduce contention in `Notify` ([#&#8203;5503]) ##### Fixed - net: support `get_peer_cred` on AIX ([#&#8203;5065]) - sync: avoid deadlocks in `broadcast` with custom wakers ([#&#8203;5578]) ##### Documented - sync: fix typo in `Semaphore::MAX_PERMITS` ([#&#8203;5645]) - sync: fix typo in `tokio::sync::watch::Sender` docs ([#&#8203;5587]) [#&#8203;5065]: https://github.com/tokio-rs/tokio/pull/5065 [#&#8203;5503]: https://github.com/tokio-rs/tokio/pull/5503 [#&#8203;5542]: https://github.com/tokio-rs/tokio/pull/5542 [#&#8203;5578]: https://github.com/tokio-rs/tokio/pull/5578 [#&#8203;5583]: https://github.com/tokio-rs/tokio/pull/5583 [#&#8203;5587]: https://github.com/tokio-rs/tokio/pull/5587 [#&#8203;5590]: https://github.com/tokio-rs/tokio/pull/5590 [#&#8203;5591]: https://github.com/tokio-rs/tokio/pull/5591 [#&#8203;5607]: https://github.com/tokio-rs/tokio/pull/5607 [#&#8203;5610]: https://github.com/tokio-rs/tokio/pull/5610 [#&#8203;5611]: https://github.com/tokio-rs/tokio/pull/5611 [#&#8203;5612]: https://github.com/tokio-rs/tokio/pull/5612 [#&#8203;5618]: https://github.com/tokio-rs/tokio/pull/5618 [#&#8203;5621]: https://github.com/tokio-rs/tokio/pull/5621 [#&#8203;5645]: https://github.com/tokio-rs/tokio/pull/5645 [#&#8203;5647]: https://github.com/tokio-rs/tokio/pull/5647 ### [`v1.27.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.27.0): Tokio v1.27.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.26.0...tokio-1.27.0) ### 1.27.0 (March 27th, 2023) This release bumps the MSRV of Tokio to 1.56. ([#&#8203;5559]) ##### Added - io: add `async_io` helper method to sockets ([#&#8203;5512]) - io: add implementations of `AsFd`/`AsHandle`/`AsSocket` ([#&#8203;5514], [#&#8203;5540]) - net: add `UdpSocket::peek_sender()` ([#&#8203;5520]) - sync: add `RwLockWriteGuard::{downgrade_map, try_downgrade_map}` ([#&#8203;5527]) - task: add `JoinHandle::abort_handle` ([#&#8203;5543]) ##### Changed - io: use `memchr` from `libc` ([#&#8203;5558]) - macros: accept path as crate rename in `#[tokio::main]` ([#&#8203;5557]) - macros: update to syn 2.0.0 ([#&#8203;5572]) - time: don't register for a wakeup when `Interval` returns `Ready` ([#&#8203;5553]) ##### Fixed - fs: fuse std iterator in `ReadDir` ([#&#8203;5555]) - tracing: fix `spawn_blocking` location fields ([#&#8203;5573]) - time: clean up redundant check in `Wheel::poll()` ([#&#8203;5574]) ##### Documented - macros: define cancellation safety ([#&#8203;5525]) - io: add details to docs of `tokio::io::copy[_buf]` ([#&#8203;5575]) - io: refer to `ReaderStream` and `StreamReader` in module docs ([#&#8203;5576]) [#&#8203;5512]: https://github.com/tokio-rs/tokio/pull/5512 [#&#8203;5514]: https://github.com/tokio-rs/tokio/pull/5514 [#&#8203;5520]: https://github.com/tokio-rs/tokio/pull/5520 [#&#8203;5525]: https://github.com/tokio-rs/tokio/pull/5525 [#&#8203;5527]: https://github.com/tokio-rs/tokio/pull/5527 [#&#8203;5540]: https://github.com/tokio-rs/tokio/pull/5540 [#&#8203;5543]: https://github.com/tokio-rs/tokio/pull/5543 [#&#8203;5553]: https://github.com/tokio-rs/tokio/pull/5553 [#&#8203;5555]: https://github.com/tokio-rs/tokio/pull/5555 [#&#8203;5557]: https://github.com/tokio-rs/tokio/pull/5557 [#&#8203;5558]: https://github.com/tokio-rs/tokio/pull/5558 [#&#8203;5559]: https://github.com/tokio-rs/tokio/pull/5559 [#&#8203;5572]: https://github.com/tokio-rs/tokio/pull/5572 [#&#8203;5573]: https://github.com/tokio-rs/tokio/pull/5573 [#&#8203;5574]: https://github.com/tokio-rs/tokio/pull/5574 [#&#8203;5575]: https://github.com/tokio-rs/tokio/pull/5575 [#&#8203;5576]: https://github.com/tokio-rs/tokio/pull/5576 ### [`v1.26.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.26.0): Tokio v1.26.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.25.0...tokio-1.26.0) ##### Fixed - macros: fix empty `join!` and `try_join!` ([https://github.com/tokio-rs/tokio/pull/5504]) - sync: don't leak tracing spans in mutex guards ([https://github.com/tokio-rs/tokio/pull/5469]) - sync: drop wakers after unlocking the mutex in Notify ([https://github.com/tokio-rs/tokio/pull/5471]) - sync: drop wakers outside lock in semaphore ([https://github.com/tokio-rs/tokio/pull/5475]) ##### Added - fs: add `fs::try_exists` ([https://github.com/tokio-rs/tokio/pull/4299]) - net: add types for named unix pipes ([https://github.com/tokio-rs/tokio/pull/5351]) - sync: add `MappedOwnedMutexGuard` ([https://github.com/tokio-rs/tokio/pull/5474]) ##### Changed - chore: update windows-sys to 0.45 ([https://github.com/tokio-rs/tokio/pull/5386]) - net: use Message Read Mode for named pipes ([https://github.com/tokio-rs/tokio/pull/5350]) - sync: mark lock guards with `#[clippy::has_significant_drop]` ([https://github.com/tokio-rs/tokio/pull/5422]) - sync: reduce contention in watch channel ([https://github.com/tokio-rs/tokio/pull/5464]) - time: remove cache padding in timer entries ([https://github.com/tokio-rs/tokio/pull/5468]) - time: Improve `Instant::now()` perf with test-util ([https://github.com/tokio-rs/tokio/pull/5513]) ##### Internal Changes - io: use `poll_fn` in `copy_bidirectional` ([https://github.com/tokio-rs/tokio/pull/5486]) - net: refactor named pipe builders to not use bitfields ([https://github.com/tokio-rs/tokio/pull/5477]) - rt: remove Arc from Clock ([https://github.com/tokio-rs/tokio/pull/5434]) - sync: make `notify_waiters` calls atomic ([https://github.com/tokio-rs/tokio/pull/5458]) - time: don't store deadline twice in sleep entries ([https://github.com/tokio-rs/tokio/pull/5410]) ##### Unstable - metrics: add a new metric for budget exhaustion yields ([https://github.com/tokio-rs/tokio/pull/5517]) ##### Documented - io: improve AsyncFd example ([https://github.com/tokio-rs/tokio/pull/5481]) - runtime: document the nature of the main future ([https://github.com/tokio-rs/tokio/pull/5494]) - runtime: remove extra period in docs ([https://github.com/tokio-rs/tokio/pull/5511]) - signal: updated Documentation for Signals ([https://github.com/tokio-rs/tokio/pull/5459]) - sync: add doc aliases for `blocking_*` methods ([https://github.com/tokio-rs/tokio/pull/5448]) - sync: fix docs for Send/Sync bounds in broadcast ([https://github.com/tokio-rs/tokio/pull/5480]) - sync: document drop behavior for channels ([https://github.com/tokio-rs/tokio/pull/5497]) - task: clarify what happens to spawned work during runtime shutdown ([https://github.com/tokio-rs/tokio/pull/5394]) - task: clarify `process::Command` docs ([https://github.com/tokio-rs/tokio/pull/5413]) - task: fix wording with 'unsend' ([https://github.com/tokio-rs/tokio/pull/5452]) - time: document immediate completion guarantee for timeouts ([https://github.com/tokio-rs/tokio/pull/5509]) - tokio: document supported platforms ([https://github.com/tokio-rs/tokio/pull/5483]) [https://github.com/tokio-rs/tokio/pull/4299]: https://github.com/tokio-rs/tokio/pull/4299 [https://github.com/tokio-rs/tokio/pull/5350]: https://github.com/tokio-rs/tokio/pull/5350 [https://github.com/tokio-rs/tokio/pull/5351]: https://github.com/tokio-rs/tokio/pull/5351 [https://github.com/tokio-rs/tokio/pull/5386]: https://github.com/tokio-rs/tokio/pull/5386 [https://github.com/tokio-rs/tokio/pull/5394]: https://github.com/tokio-rs/tokio/pull/5394 [https://github.com/tokio-rs/tokio/pull/5410]: https://github.com/tokio-rs/tokio/pull/5410 [https://github.com/tokio-rs/tokio/pull/5413]: https://github.com/tokio-rs/tokio/pull/5413 [https://github.com/tokio-rs/tokio/pull/5422]: https://github.com/tokio-rs/tokio/pull/5422 [https://github.com/tokio-rs/tokio/pull/5434]: https://github.com/tokio-rs/tokio/pull/5434 [https://github.com/tokio-rs/tokio/pull/5448]: https://github.com/tokio-rs/tokio/pull/5448 [https://github.com/tokio-rs/tokio/pull/5452]: https://github.com/tokio-rs/tokio/pull/5452 [https://github.com/tokio-rs/tokio/pull/5458]: https://github.com/tokio-rs/tokio/pull/5458 [https://github.com/tokio-rs/tokio/pull/5459]: https://github.com/tokio-rs/tokio/pull/5459 [https://github.com/tokio-rs/tokio/pull/5464]: https://github.com/tokio-rs/tokio/pull/5464 [https://github.com/tokio-rs/tokio/pull/5468]: https://github.com/tokio-rs/tokio/pull/5468 [https://github.com/tokio-rs/tokio/pull/5469]: https://github.com/tokio-rs/tokio/pull/5469 [https://github.com/tokio-rs/tokio/pull/5471]: https://github.com/tokio-rs/tokio/pull/5471 [https://github.com/tokio-rs/tokio/pull/5474]: https://github.com/tokio-rs/tokio/pull/5474 [https://github.com/tokio-rs/tokio/pull/5475]: https://github.com/tokio-rs/tokio/pull/5475 [https://github.com/tokio-rs/tokio/pull/5477]: https://github.com/tokio-rs/tokio/pull/5477 [https://github.com/tokio-rs/tokio/pull/5480]: https://github.com/tokio-rs/tokio/pull/5480 [https://github.com/tokio-rs/tokio/pull/5481]: https://github.com/tokio-rs/tokio/pull/5481 [https://github.com/tokio-rs/tokio/pull/5483]: https://github.com/tokio-rs/tokio/pull/5483 [https://github.com/tokio-rs/tokio/pull/5486]: https://github.com/tokio-rs/tokio/pull/5486 [https://github.com/tokio-rs/tokio/pull/5494]: https://github.com/tokio-rs/tokio/pull/5494 [https://github.com/tokio-rs/tokio/pull/5497]: https://github.com/tokio-rs/tokio/pull/5497 [https://github.com/tokio-rs/tokio/pull/5504]: https://github.com/tokio-rs/tokio/pull/5504 [https://github.com/tokio-rs/tokio/pull/5509]: https://github.com/tokio-rs/tokio/pull/5509 [https://github.com/tokio-rs/tokio/pull/5511]: https://github.com/tokio-rs/tokio/pull/5511 [https://github.com/tokio-rs/tokio/pull/5513]: https://github.com/tokio-rs/tokio/pull/5513 [https://github.com/tokio-rs/tokio/pull/5517]: https://github.com/tokio-rs/tokio/pull/5517 ### [`v1.25.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.25.0): Tokio v1.25.0 ### 1.25.0 (January 28, 2023) ##### Fixed - rt: fix runtime metrics reporting ([#&#8203;5330]) ##### Added - sync: add `broadcast::Sender::len` ([#&#8203;5343]) ##### Changed - fs: increase maximum read buffer size to 2MiB ([#&#8203;5397]) [#&#8203;5330]: https://github.com/tokio-rs/tokio/pull/5330 [#&#8203;5343]: https://github.com/tokio-rs/tokio/pull/5343 [#&#8203;5397]: https://github.com/tokio-rs/tokio/pull/5397 ### [`v1.24.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.24.1): Tokio v1.24.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.24.0...tokio-1.24.1) This release fixes a compilation failure on targets without `AtomicU64` when using rustc older than 1.63. ([#&#8203;5356]) [#&#8203;5356]: https://github.com/tokio-rs/tokio/pull/5356 ### [`v1.24.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.24.0): Tokio v1.24.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.23.1...tokio-1.24.0) The highlight of this release is the reduction of lock contention for all I/O operations ([#&#8203;5300](https://github.com/tokio-rs/tokio/issues/5300)). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications. ##### Fixed - rt: improve native `AtomicU64` support detection ([#&#8203;5284]) ##### Added - rt: add configuration option for max number of I/O events polled from the OS per tick ([#&#8203;5186]) - rt: add an environment variable for configuring the default number of worker threads per runtime instance ([#&#8203;4250]) ##### Changed - sync: reduce MPSC channel stack usage ([#&#8203;5294]) - io: reduce lock contention in I/O operations ([#&#8203;5300]) - fs: speed up `read_dir()` by chunking operations ([#&#8203;5309]) - rt: use internal `ThreadId` implementation ([#&#8203;5329]) - test: don't auto-advance time when a `spawn_blocking` task is running ([#&#8203;5115]) [#&#8203;5186]: https://github.com/tokio-rs/tokio/pull/5186 [#&#8203;5294]: https://github.com/tokio-rs/tokio/pull/5294 [#&#8203;5284]: https://github.com/tokio-rs/tokio/pull/5284 [#&#8203;4250]: https://github.com/tokio-rs/tokio/pull/4250 [#&#8203;5300]: https://github.com/tokio-rs/tokio/pull/5300 [#&#8203;5329]: https://github.com/tokio-rs/tokio/pull/5329 [#&#8203;5115]: https://github.com/tokio-rs/tokio/pull/5115 [#&#8203;5309]: https://github.com/tokio-rs/tokio/pull/5309 ### [`v1.23.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.23.1): Tokio v1.23.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.23.0...tokio-1.23.1) This release forward ports changes from 1.18.4. ##### Fixed - net: fix Windows named pipe server builder to maintain option when toggling pipe mode ([#&#8203;5336]). [#&#8203;5336]: https://github.com/tokio-rs/tokio/pull/5336 ### [`v1.23.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.23.0): Tokio v1.23.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.22.0...tokio-1.23.0) ##### Fixed - net: fix Windows named pipe connect ([#&#8203;5208]) - io: support vectored writes for `ChildStdin` ([#&#8203;5216]) - io: fix `async fn ready()` false positive for OS-specific events ([#&#8203;5231]) ##### Changed - runtime: `yield_now` defers task until after driver poll ([#&#8203;5223]) - runtime: reduce amount of codegen needed per spawned task ([#&#8203;5213]) - windows: replace `winapi` dependency with `windows-sys` ([#&#8203;5204]) [#&#8203;5208]: https://github.com/tokio-rs/tokio/pull/5208 [#&#8203;5216]: https://github.com/tokio-rs/tokio/pull/5216 [#&#8203;5213]: https://github.com/tokio-rs/tokio/pull/5213 [#&#8203;5204]: https://github.com/tokio-rs/tokio/pull/5204 [#&#8203;5223]: https://github.com/tokio-rs/tokio/pull/5223 [#&#8203;5231]: https://github.com/tokio-rs/tokio/pull/5231 </details> <details> <summary>tower-rs/tower-http</summary> ### [`v0.4.0`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.4.0): v0.4.0 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.3.5...tower-http-0.4.0) #### Added - **decompression:** Add `RequestDecompression` middleware ([#&#8203;282]) - **compression:** Implement `Default` for `CompressionBody` ([#&#8203;323]) - **compression, decompression:** Support zstd (de)compression ([#&#8203;322]) #### Changed - **serve_dir:** `ServeDir` and `ServeFile`'s error types are now `Infallible` and any IO errors will be converted into responses. Use `try_call` to generate error responses manually (BREAKING) ([#&#8203;283]) - **serve_dir:** `ServeDir::fallback` and `ServeDir::not_found_service` now requires the fallback service to use `Infallible` as its error type (BREAKING) ([#&#8203;283]) - **compression, decompression:** Tweak prefered compression encodings ([#&#8203;325]) #### Removed - Removed `RequireAuthorization` in favor of `ValidateRequest` (BREAKING) ([#&#8203;290]) #### Fixed - **serve_dir:** Don't include identity in Content-Encoding header ([#&#8203;317]) - **compression:** Do compress SVGs ([#&#8203;321]) - **serve_dir:** In `ServeDir`, convert `io::ErrorKind::NotADirectory` to `404 Not Found` ([#&#8203;331]) [#&#8203;282]: https://github.com/tower-rs/tower-http/pull/282 [#&#8203;283]: https://github.com/tower-rs/tower-http/pull/283 [#&#8203;290]: https://github.com/tower-rs/tower-http/pull/290 [#&#8203;317]: https://github.com/tower-rs/tower-http/pull/317 [#&#8203;321]: https://github.com/tower-rs/tower-http/pull/321 [#&#8203;322]: https://github.com/tower-rs/tower-http/pull/322 [#&#8203;323]: https://github.com/tower-rs/tower-http/pull/323 [#&#8203;325]: https://github.com/tower-rs/tower-http/pull/325 [#&#8203;331]: https://github.com/tower-rs/tower-http/pull/331 ### [`v0.3.5`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.3.5): v0.3.5 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.3.4...tower-http-0.3.5) #### Added - Add `NormalizePath` middleware ([#&#8203;275]) - Add `ValidateRequest` middleware ([#&#8203;289]) - Add `RequestBodyTimeout` middleware ([#&#8203;303]) #### Changed - Bump Minimum Supported Rust Version to 1.60 ([#&#8203;299]) #### Fixed - **trace:** Correctly identify gRPC requests in default `on_response` callback ([#&#8203;278]) - **cors:** Panic if a wildcard (`*`) is passed to `AllowOrigin::list`. Use `AllowOrigin::any()` instead ([#&#8203;285]) - **serve_dir:** Call the fallback on non-uft8 request paths ([#&#8203;310]) [#&#8203;275]: https://github.com/tower-rs/tower-http/pull/275 [#&#8203;278]: https://github.com/tower-rs/tower-http/pull/278 [#&#8203;285]: https://github.com/tower-rs/tower-http/pull/285 [#&#8203;289]: https://github.com/tower-rs/tower-http/pull/289 [#&#8203;299]: https://github.com/tower-rs/tower-http/pull/299 [#&#8203;303]: https://github.com/tower-rs/tower-http/pull/303 [#&#8203;310]: https://github.com/tower-rs/tower-http/pull/310 </details> <details> <summary>tokio-rs/tracing</summary> ### [`v0.3.17`](https://github.com/tokio-rs/tracing/releases/tag/tracing-subscriber-0.3.17): tracing-subscriber 0.3.17 [Compare Source](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.16...tracing-subscriber-0.3.17) This release of `tracing-subscriber` fixes a build error when using `env-filter` with recent versions of the `regex` crate. It also introduces several minor API improvements. ##### Fixed - **env-filter**: Add "unicode-case" and "unicode-perl" to the `regex` dependency, fixing a build error with recent versions of `regex` ([#&#8203;2566]) - A number of minor documentation typos and other fixes ([#&#8203;2384], [#&#8203;2378], [#&#8203;2368], [#&#8203;2548]) ##### Added - **filter**: Add `fmt::Display` impl for `filter::Targets` ([#&#8203;2343]) - **fmt**: Made `with_ansi(false)` no longer require the "ansi" feature, so that ANSI formatting escapes can be disabled without requiring ANSI-specific dependencies ([#&#8203;2532]) ##### Changed - **fmt**: Dim targets in the `Compact` formatter, matching the default formatter ([#&#8203;2409]) Thanks to [@&#8203;keepsimple1](https://github.com/keepsimple1), [@&#8203;andrewhalle](https://github.com/andrewhalle), [@&#8203;LeoniePhiline](https://github.com/LeoniePhiline), [@&#8203;LukeMathWalker](https://github.com/LukeMathWalker), [@&#8203;howardjohn](https://github.com/howardjohn), [@&#8203;daxpedda](https://github.com/daxpedda), and [@&#8203;dbidwell94](https://github.com/dbidwell94) for contributing to this release! [#&#8203;2566]: https://github.com/tokio-rs/tracing/pull/2566 [#&#8203;2384]: https://github.com/tokio-rs/tracing/pull/2384 [#&#8203;2378]: https://github.com/tokio-rs/tracing/pull/2378 [#&#8203;2368]: https://github.com/tokio-rs/tracing/pull/2368 [#&#8203;2548]: https://github.com/tokio-rs/tracing/pull/2548 [#&#8203;2343]: https://github.com/tokio-rs/tracing/pull/2343 [#&#8203;2532]: https://github.com/tokio-rs/tracing/pull/2532 [#&#8203;2409]: https://github.com/tokio-rs/tracing/pull/2409 </details> <details> <summary>uuid-rs/uuid</summary> ### [`v1.3.3`](https://github.com/uuid-rs/uuid/releases/tag/1.3.3) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.3.2...1.3.3) ##### What's Changed - Use sha hash for checkout action and remove others by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/671 - Hard deprecate Timestamp::to_unix_nanos by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/673 - Prepare for 1.3.3 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/674 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.3.2...1.3.3 ### [`v1.3.2`](https://github.com/uuid-rs/uuid/releases/tag/1.3.2) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.3.1...1.3.2) ##### What's Changed - Create SECURITY.md by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/668 - Faster as_u128 and to_u128\_le by [@&#8203;pkoenig10](https://github.com/pkoenig10) in https://github.com/uuid-rs/uuid/pull/669 - prepare for 1.3.2 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/670 ##### New Contributors - [@&#8203;pkoenig10](https://github.com/pkoenig10) made their first contribution in https://github.com/uuid-rs/uuid/pull/669 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.3.1...1.3.2 ### [`v1.3.1`](https://github.com/uuid-rs/uuid/releases/tag/1.3.1) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.3.0...1.3.1) ##### What's Changed - Update syn requirement from 1.0.80 to 2.0.5 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/uuid-rs/uuid/pull/663 - Update windows-sys requirement from 0.45.0 to 0.48.0 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/uuid-rs/uuid/pull/665 - remove some extra chars in a comment by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/666 - Prepare for 1.3.1 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/667 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.3.0...1.3.1 ### [`v1.3.0`](https://github.com/uuid-rs/uuid/releases/tag/1.3.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/1.2.2...1.3.0) ##### What's Changed - Fix error message. by [@&#8203;basbossink-ds](https://github.com/basbossink-ds) in https://github.com/uuid-rs/uuid/pull/656 - implement Arbitrary::size_hint by [@&#8203;Ekleog](https://github.com/Ekleog) in https://github.com/uuid-rs/uuid/pull/657 - Always use hyphenated format regardless of flags by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/658 - Update windows-sys requirement from 0.42.0 to 0.45.0 by [@&#8203;dependabot](https://github.com/dependabot) in https://github.com/uuid-rs/uuid/pull/654 - Prepare for 1.3.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/659 ##### New Contributors - [@&#8203;basbossink-ds](https://github.com/basbossink-ds) made their first contribution in https://github.com/uuid-rs/uuid/pull/656 - [@&#8203;Ekleog](https://github.com/Ekleog) made their first contribution in https://github.com/uuid-rs/uuid/pull/657 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/1.2.2...1.3.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yMy4xIiwidXBkYXRlZEluVmVyIjoiMzQuMTYwLjAifQ==-->
kjuulh force-pushed renovate/all from 699095cbe4 to d09d7cac61 2022-12-01 20:16:41 +01:00 Compare
kjuulh changed title from Update Rust crate axum to 0.6.0 to Update all dependencies 2022-12-01 20:16:44 +01:00
kjuulh force-pushed renovate/all from d09d7cac61 to e5a1786d2d 2022-12-02 15:48:05 +01:00 Compare
kjuulh force-pushed renovate/all from e5a1786d2d to d414be743d 2022-12-05 14:31:01 +01:00 Compare
kjuulh force-pushed renovate/all from d414be743d to 49ed43a188 2022-12-06 19:46:06 +01:00 Compare
kjuulh force-pushed renovate/all from 49ed43a188 to 29e60f7959 2022-12-07 16:12:24 +01:00 Compare
kjuulh force-pushed renovate/all from 29e60f7959 to b81b847869 2022-12-12 01:47:18 +01:00 Compare
kjuulh force-pushed renovate/all from b81b847869 to c425e86a10 2022-12-18 12:05:57 +01:00 Compare
kjuulh force-pushed renovate/all from c425e86a10 to 1239e8cae7 2022-12-18 18:30:26 +01:00 Compare
kjuulh force-pushed renovate/all from 1239e8cae7 to 525db7e409 2022-12-26 18:49:58 +01:00 Compare
kjuulh force-pushed renovate/all from 525db7e409 to c713908c7c 2023-01-03 17:15:46 +01:00 Compare
kjuulh force-pushed renovate/all from c713908c7c to 5295f72922 2023-01-04 20:34:01 +01:00 Compare
kjuulh force-pushed renovate/all from 5295f72922 to 1a2d0319cd 2023-01-05 20:32:57 +01:00 Compare
kjuulh force-pushed renovate/all from 1a2d0319cd to 59e5745c16 2023-01-06 12:14:00 +01:00 Compare
kjuulh force-pushed renovate/all from 59e5745c16 to e69fe21eb4 2023-01-09 14:27:58 +01:00 Compare
kjuulh force-pushed renovate/all from e69fe21eb4 to 1f5c7b40e8 2023-01-17 22:05:37 +01:00 Compare
kjuulh force-pushed renovate/all from 1f5c7b40e8 to 191e4c62c6 2023-01-21 00:49:55 +01:00 Compare
kjuulh force-pushed renovate/all from 191e4c62c6 to c65160cca9 2023-01-23 11:59:43 +01:00 Compare
kjuulh force-pushed renovate/all from c65160cca9 to e87a962ad1 2023-01-24 14:41:59 +01:00 Compare
kjuulh force-pushed renovate/all from e87a962ad1 to 3488bb0d53 2023-01-30 07:37:41 +01:00 Compare
kjuulh force-pushed renovate/all from 3488bb0d53 to fb0254c2bf 2023-02-01 13:09:59 +01:00 Compare
kjuulh force-pushed renovate/all from fb0254c2bf to f6a4bcbcf9 2023-02-05 12:11:07 +01:00 Compare
kjuulh force-pushed renovate/all from f6a4bcbcf9 to 7f0ae7c247 2023-02-08 21:59:51 +01:00 Compare
kjuulh force-pushed renovate/all from 7f0ae7c247 to eba07fb579 2023-02-11 10:25:51 +01:00 Compare
kjuulh force-pushed renovate/all from eba07fb579 to 9244eeeeaf 2023-02-11 23:05:24 +01:00 Compare
kjuulh force-pushed renovate/all from 9244eeeeaf to 6224520108 2023-02-12 13:00:47 +01:00 Compare
kjuulh force-pushed renovate/all from 6224520108 to 1485800c6f 2023-02-17 15:44:58 +01:00 Compare
kjuulh force-pushed renovate/all from 1485800c6f to ade2cef98b 2023-02-25 00:11:54 +01:00 Compare
kjuulh force-pushed renovate/all from ade2cef98b to 5b778b8863 2023-02-27 20:16:09 +01:00 Compare
kjuulh force-pushed renovate/all from 5b778b8863 to 7f57618352 2023-03-02 08:09:37 +01:00 Compare
kjuulh force-pushed renovate/all from 7f57618352 to ed03bc9261 2023-03-03 18:50:51 +01:00 Compare
kjuulh force-pushed renovate/all from ed03bc9261 to 92d75a4cc3 2023-03-05 15:51:15 +01:00 Compare
kjuulh force-pushed renovate/all from 92d75a4cc3 to c22bee53b7 2023-03-05 19:43:55 +01:00 Compare
kjuulh force-pushed renovate/all from c22bee53b7 to 1e1705a0cb 2023-03-07 20:13:19 +01:00 Compare
kjuulh force-pushed renovate/all from 1e1705a0cb to ffe7824067 2023-03-08 21:48:08 +01:00 Compare
kjuulh force-pushed renovate/all from ffe7824067 to c052a5a4e1 2023-03-11 22:40:19 +01:00 Compare
kjuulh force-pushed renovate/all from c052a5a4e1 to f0348d0c36 2023-03-13 18:08:09 +01:00 Compare
kjuulh force-pushed renovate/all from f0348d0c36 to 64d79a5f3e 2023-03-14 18:17:26 +01:00 Compare
kjuulh force-pushed renovate/all from 64d79a5f3e to 66677df888 2023-03-18 10:54:15 +01:00 Compare
kjuulh force-pushed renovate/all from 66677df888 to e4881babe0 2023-03-20 18:28:19 +01:00 Compare
kjuulh force-pushed renovate/all from e4881babe0 to fdd21a7c32 2023-03-22 16:50:22 +01:00 Compare
kjuulh force-pushed renovate/all from fdd21a7c32 to f947a086a6 2023-03-25 11:23:42 +01:00 Compare
kjuulh force-pushed renovate/all from f947a086a6 to b0cabd60d6 2023-03-26 20:57:40 +02:00 Compare
kjuulh force-pushed renovate/all from b0cabd60d6 to efdd6b38da 2023-03-27 19:13:02 +02:00 Compare
kjuulh force-pushed renovate/all from efdd6b38da to b7d8585905 2023-03-28 00:13:16 +02:00 Compare
kjuulh force-pushed renovate/all from b7d8585905 to 92727c6abf 2023-03-28 08:18:37 +02:00 Compare
kjuulh force-pushed renovate/all from 92727c6abf to c3de315fb8 2023-04-09 16:04:44 +02:00 Compare
kjuulh force-pushed renovate/all from c3de315fb8 to 98ea94f41d 2023-04-11 08:05:27 +02:00 Compare
kjuulh force-pushed renovate/all from 98ea94f41d to e0c906aac4 2023-04-11 17:42:56 +02:00 Compare
kjuulh force-pushed renovate/all from e0c906aac4 to 4fbdbcd3ba 2023-04-11 19:56:26 +02:00 Compare
kjuulh force-pushed renovate/all from 4fbdbcd3ba to a93624d72d 2023-04-12 17:19:42 +02:00 Compare
kjuulh force-pushed renovate/all from a93624d72d to d178d829e4 2023-04-13 02:22:16 +02:00 Compare
kjuulh force-pushed renovate/all from d178d829e4 to 2281dad158 2023-04-18 21:11:58 +02:00 Compare
kjuulh force-pushed renovate/all from 2281dad158 to 89c7d150b8 2023-04-22 10:05:21 +02:00 Compare
kjuulh force-pushed renovate/all from 89c7d150b8 to 911a6f85c8 2023-04-26 21:55:50 +02:00 Compare
kjuulh force-pushed renovate/all from 911a6f85c8 to ca5473e73e 2023-04-29 12:16:16 +02:00 Compare
kjuulh force-pushed renovate/all from ca5473e73e to e851dca5e8 2023-04-29 21:44:59 +02:00 Compare
kjuulh force-pushed renovate/all from e851dca5e8 to c5172bbec6 2023-04-30 14:01:46 +02:00 Compare
kjuulh force-pushed renovate/all from c5172bbec6 to e5f517befd 2023-05-05 02:09:34 +02:00 Compare
kjuulh force-pushed renovate/all from e5f517befd to a86240a6f2 2023-05-05 10:00:11 +02:00 Compare
kjuulh force-pushed renovate/all from a86240a6f2 to a851c6bd4e 2023-05-09 13:48:22 +02:00 Compare
kjuulh force-pushed renovate/all from a851c6bd4e to 8e9e64b608 2023-05-10 12:13:20 +02:00 Compare
kjuulh force-pushed renovate/all from 8e9e64b608 to 98e416fcdd 2023-05-11 17:01:01 +02:00 Compare
kjuulh force-pushed renovate/all from 98e416fcdd to 9607e1affa 2023-05-15 11:52:25 +02:00 Compare
kjuulh force-pushed renovate/all from 9607e1affa to 61aff908c6 2023-05-25 07:18:47 +02:00 Compare
kjuulh changed title from Update all dependencies to Update all dependencies - autoclosed 2023-05-27 13:53:40 +02:00
kjuulh closed this pull request 2023-05-27 13:53:40 +02:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: kjuulh/como#17
No description provided.