Update dependency stephenberry/glaze to v7.6.0 #91
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/stephenberry-glaze-7.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
7.5.0→7.6.0Release Notes
stephenberry/glaze (stephenberry/glaze)
v7.6.0Compare Source
Unified HTTP Routing
Streaming and WebSocket routes now live in
basic_http_routeralongside normal routes, sharing the radix-tree matcher. As a result, streaming and WebSocket routes support:paramand*wildcardsegments, and any mix of route kinds can be passed toserver.mount().New router methods:
stream,stream_get,stream_post,websocket,match_streaming,match_websocket. The flatstreaming_handlers_/websocket_handlers_maps onhttp_serverare gone;mount()now propagates all three route kinds.Behavior change: streaming routes are matched before normal routes, so a streaming
/items/:idwill intercept requests that previously fell through to a normal/items/42. Documented indocs/networking/http-router.md.Migration: the public
router.routesfield is nowrouter.normal_routes.routes; aroutes()accessor is provided for source compatibility.HTTP Client Connection Pooling
glz::http_clientnow keeps reused keep-alive connections healthy and transparently retries lost ones. Three coordinated changes:idle_timeoutis evicted on the nextacquire()(default 4s, sized just under uvicorn's 5s). Plain TCP sockets get an active non-blockingMSG_PEEKto detect FIN/RST before any request bytes go on the wire. SSL sockets rely on timestamp eviction plus the retry path.EOF,ECONNRESET,EPIPE,ECONNABORTED, etc.), no response bytes have been received yet, and the method is idempotent. POST/PATCH are never auto-retried.perform_request_async/perform_sync_requestand threaded through the chain asshared_ptr<std::string>, so internal lambda captures are one refcount bump instead of astd::string+ header-map copy.New API:
Defaults match common HTTP clients (10 connections per host, 4s idle timeout). Existing API is unchanged.
http_client: pool eviction, transparent retry, request-bytes sharing by @stephenberry in #2551Type-Level Skip via
glz::skip{}A type can now opt out of serialization entirely by setting its meta value to
glz::skip{}:All format writers now key off a unified
always_skippedconcept.meta::value = glz::skip{}by @stephenberry in #2555C++26
std::inplace_vectorCompatibilityhas_try_emplace_backno longer hard-requiresT*; it accepts any result that is contextually convertible tobool, so a real C++26std::inplace_vector(whosetry_emplace_backreturnsstd::optional<T&>per P3981) is detected. JSON parser call sites use truthy /notchecks instead of!= nullptr/== nullptr.glz::inplace_vectormirrors the matching API shape underGLZ_HAS_OPTIONAL_REF, auto-detected via__cpp_lib_optional > 202110L. On stdlibs that shipstd::optional<T&>the polyfill returnsoptional<T&>; otherwise it keeps the C++23T*shape. Users can force the path with-DGLZ_HAS_OPTIONAL_REF=1.inplace_vector: match C++26 P3981try_emplace_back/try_push_backAPI by @stephenberry in #2552Fixes
http_server::stream_*handlers (and the WebSocket upgrade path) failed to match any request that included a query string. Lookups now key offrequest.pathafter parsing, so streaming and WebSocket handlers seerequest.pathandrequest.querypopulated the same way regular handlers do by @stephenberry in #2550vector<pair<...>>as JSON object: astd::variantcontaining avector<pair<...>>alternative no longer fails withno_matching_variant_typeon{...}JSON input. Variant deduction is now option-aware viacheck_concatenate(Opts), matching the direct parser's concatenate-mode behavior by @stephenberry in #2533ordered_small_mapparse error under namespace pollution: parsing no longer fails whenstd::hashis hoisted to global scope by @stephenberry in #2535noexceptadded to EETF functions;eetf_to_jsonnow useseetf_opts;requiresclause restricts input buffers to single-byte element types (required byeifunctions); fixed universal-reference forwarding; added a test foreetf_to_jsonconversion without an EETF header by @fregate in #2547zmij.hpp: suppressC4702(likely a compiler regression) andC4324(intentional for SIMD). No behavior change by @JnCrMx in #2556CI
gcc.ymlas abuild-gcc16-reflectionjob on the officialgcc:16.1Docker image by @stephenberry in #2553Full Changelog: https://github.com/stephenberry/glaze/compare/v7.5.0...v7.5.1
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.