Skip to content

Releases: RomanEmreis/volga

v0.8.6

07 Mar 14:21
2aeb9d5

Choose a tag to compare

What's Changed

Full Changelog: 0.8.5...0.8.6

v0.8.5

01 Mar 16:50
c5cda0e

Choose a tag to compare

What's Changed

Full Changelog: 0.8.4...0.8.5

v0.8.4

22 Feb 14:57
35679b6

Choose a tag to compare

What's Changed

Full Changelog: 0.8.3...0.8.4

v0.8.3

02 Feb 15:43
8673a65

Choose a tag to compare

What's Changed

  • Tightened WebSocket handshake validation (method checks, header token parsing, HTTP/2 :protocol enforcement)
    and ensured only negotiated subprotocols are echoed in responses.
  • Added graceful close attempts when recv/send fails during WebSocket message handling.
  • Introduced WsEvent<T> for split WebSockets to distinguish data messages from close events.
  • Made WebSocket::recv<T> data-only; ping/pong and close frames are handled internally.
  • Centralized raw message receiving to avoid parsing control frames as application data.
  • Implemented best-effort close handshakes with proper error filtering for expected disconnects.
  • Added protocol invariants (debug_assert!) for unexpected raw frames.
  • Updated SSE message handling to store multiple fields while preserving replace semantics for data/event/id/retry and allowing dynamic comments, plus fixed append to split multi-line data correctly.
  • Expanded SSE response headers to include charset, keep-alive, and proxy buffering control, with tests updated to match.
  • Added SseStream that implements IntoResponse, and can be created from Message by calling once/repeat methods.
  • Added implementations of async-stream for SSE and byte stream responses;
  • Added zero-cost incoming HTTP body stream extractor
  • Relaxed requirements for middleware and handler args, they no longer needed to be Sync.
  • Relaxed requirements for stream and box bodies, they no longer needed to be Sync.

PRs

Full Changelog: 0.8.2...0.8.3

v0.8.2

28 Jan 19:07
3dc008a

Choose a tag to compare

What's Changed

Full Changelog: 0.8.1...0.8.2

v0.8.1

25 Jan 10:52
6218b5e

Choose a tag to compare

What's Changed

Changelog

  • Updated HttpBody::json/form to return Result so serialization errors surface instead of being embedded into the body, and added an Error conversion for serde_urlencoded failures.
  • Response helper macros now propagate JSON/form serialization errors, and problem-details responses match on HttpBody::json to return Err on failure.
  • Added explicit ok!(text: ... )/ok!(fmt: ...) and status!(text: ... )/status!(fmt: ... ) macros for text/plain responses and documented them alongside existing ok!/status! examples.
  • Removed unnecessary boxing for HttpBody::full, HttpBody::json and HttpBody::form
  • Added additional methods: HttpBody::text, HttpBody::from_static, HttpBody::from_static_text, HttpBody::from_str and HttpBody::from_slice for better control.
  • Improved performance for all producing response macros and IntoResponse implementations.
  • Improved overall extractors' performance + added additional validation for the cases when mixed Path with NamedPath and positional arguments.
  • Added cached query-like path string handling for PathArgs, including into_parts/from_parts, and preserved the cache when cloning to reduce recomputation in extractor/middleware flows.
  • Switched route/allow header internals to Arc<str> and cached Allow values on route nodes to avoid recomputing 405 headers, plus simplified HSTS formatting to avoid intermediate allocation.
  • Added cached query-arg parsing in HttpRequest/HttpRequestMut to reduce repeated query parsing across extractors.
  • Added decompression safety limits (max compressed/decompressed bytes and expansion ratio) with streaming enforcement, default limits, and app-level configuration; resolved limits are now stored in AppInstance and provided via request extensions to middleware.
  • Hardened static file handling by canonicalizing requested paths to block traversal, showing relative directory paths, and hiding size/mtime metadata in release listings; added warnings for risky HostEnv settings.
  • Restricted rate-limit IP extraction to trusted proxies when honoring Forwarded/X-Forwarded-For, added trusted-proxy configuration on App, and updated tests accordingly.

Full Changelog: 0.8.0...0.8.1

v0.8.0

18 Jan 08:45
60cd74a

Choose a tag to compare

What's Changed

Breaking Changes

  • Route Group API redesign #132
  • Removed ResponseContext and Results helper types to better align with the current API model.
  • Reduced the public surface of HttpContext and HttpRequest to prevent bypassing framework invariants.
  • Introduced HttpRequestMut, allowing controlled and limited mutation of HttpRequest in tap_req() and wrap() middlewares.
  • Removed into_boxed_body, into_body_stream, and into_boxed_unsync_body from HttpRequest.
  • Reduced the public surface of HttpResponse, further decoupling it from the underlying HTTP implementation.
  • Introduced a core HttpResponseBuilder, accessible via HttpResponse::builder().
  • Consolidated HTTP header manipulation into a single, consistent, and type-safe API.
  • Renamed the custom_headers! macro to headers!.
  • Removed use_hsts and use_tracing as they are no longer needed.
  • Removed dependency from middleware feature for the tls and tracing features.
  • Renamed with_cache_control middleware to cache_control for routes and route groups.
  • use_cache_control middleware replaced with the with_cache_control builder-like configuration that precomputes a Cache-Control HTTP header which will be set if it's not present.
  • exclude_hosts: replaced Vec<&'static str> with Vec<String> using a flexible builder API; runtime is_excluded works directly without extra slices or allocations.

Full Changelog: 0.7.3...0.8.0

v0.7.3

24 Dec 16:25
b767a0e

Choose a tag to compare

What's Changed

Full Changelog: 0.7.2...0.7.3

v0.7.2

26 Nov 10:42
38a39e0

Choose a tag to compare

What's Changed

Full Changelog: 0.7.1...0.7.2

v0.7.1

20 Nov 14:05
7f74a7b

Choose a tag to compare

What's Changed

Full Changelog: 0.7.0...0.7.1