Releases: RomanEmreis/volga
Releases · RomanEmreis/volga
v0.9.3
v0.9.2
What's Changed
- HSTS validation by @RomanEmreis in #190
- Polishing invariants + removed deprecated code by @RomanEmreis in #191
- multipart response by @RomanEmreis in #192
Breaking Changes
HstsConfig::with_preload()panics ifmax_age < 1 year;HstsConfig::with_max_age(...)panics if called whenpreloadis enabled and the new value is below 1 year (#190).TlsConfig,RedirectionConfig, andProblemare now#[non_exhaustive]. External code can no longer construct them with struct literals or exhaustively pattern-match (#190, #191).- Removed the deprecated
problem!macro. Usevolga::error::Probleminstead (#191). From<Algorithm> for jsonwebtoken::Algorithmand the reverse impl are removed.jsonwebtoken::Algorithmis no longer reachable through volga's public API; conversion is crate-internal viaAlgorithm::to_jwt()(#191).Problemresponses now use the correctapplication/problem+jsoncontent type (#191).
Full Changelog: 0.9.1...0.9.2
v0.9.1
What's Changed
- Make auth/config APIs explicit and decouple JWT (breaking) by @RomanEmreis in #189
Breaking Changes
volga::authno longer re-exportsjsonwebtoken::Algorithm,DecodingKey,EncodingKey,JwtError, orErrorKind. Replaced by volga-ownedAlgorithm,DecodingKey, andEncodingKeyat the same paths. User code that imports these by name continues to compile; code usingErrorKindfor pattern-matching JWT errors or callingEncodingKey::from_rsa_der/from_ec_der/from_ed_der/DecodingKey::from_jwk/from_rsa_componentswill break. Use the dedicated PEM / base64 / secret / env / file constructors instead.BearerTokenService::validation()is removed. Configure viaBearerAuthConfig; no introspection is exposed.BearerAuthConfig::with_audnow automatically addsaudto required claims. Tokens missingaudare rejected when audiences are configured. Callwithout_strict_aud()to opt out.require_httpsis enabled by default. Non-TLS, non-loopback requests are rejected with400 Bad Request. Reverse-proxy deployments must callrequire_https(false).strip_token_from_requestis enabled by default. TheAuthorizationheader is removed after successful bearer auth. Disable viastrip_token_from_request(false)if downstream handlers need it.CorsConfig::with_credentials(bool)andwith_vary_header(bool)no longer take abool. The no-arg forms enable the feature; use the newwithout_credentials()/without_vary_header()to disable.HstsConfig::with_preload(bool)andwith_sub_domains(bool)no longer take abool. The no-arg forms enable the feature; use the newwithout_preload()/without_sub_domains()to disable.WebSocketConnection::with_accept_unmasked_frames(bool)no longer takes abool. Use the no-arg form to enable andwithout_accept_unmasked_frames()to disable.- Removed
App::with_default_cors(). Use.set_cors(CorsConfig::default())instead. - Removed
App::with_default_tracing(). Use.set_tracing(TracingConfig::default())instead. - Removed
TlsConfig::with_hsts_preload,with_hsts_sub_domains,with_hsts_max_age, andwith_hsts_exclude_hostsshortcuts. Configure through thewith_hsts(|h| h. ...)closure onTlsConfig(e.g.with_hsts(|h| h.with_preload().with_sub_domains())).
Full Changelog: 0.9.0...0.9.1
v0.9.0
What's Changed
- Public API stabilization & bugfix by @RomanEmreis in #188
💥 Breaking Changes
- Header mutation methods now return
&mut Self(wasHeader<T>/()). append_header()is now infallible and no longer returns Result.- Changed visibility of
RESPONSE_ERRORandSERVER_NAMEconstants. - Changed visibility of
Error::statusandError::instancefields, now these data can be fetched by methods:Error::status(),Error::instance()
Full Changelog: 0.8.9...0.9.0
v0.8.9
What's Changed
- Performance improvements by @RomanEmreis in #174
- Parameterized middleware by @RomanEmreis in #175
- Improved graceful shutdown by @RomanEmreis in #176
💥 Breaking Changes
-
Renamed middleware traits to match DSL:
MiddlewareHandler→With,
TapReqHandler→TapReq,
MapOkHandler→MapOk,
MapErrHandler→MapErr -
call()replaced with DSL-aligned methods (with,tap_req,map_ok,map_err) -
Removed
type Futurefrom middleware traits (now usingimpl Future) -
Introduced
attach(...)for parameterized middleware (preferred overwrap(...))
Full Changelog: 0.8.8...0.8.9
v0.8.8
What's Changed
- rate limiting pluggable store re-exports by @RomanEmreis in #172
- file-base server config by @RomanEmreis in #173
Full Changelog: 0.8.7...0.8.8
v0.8.7
What's Changed
- Added
to_mapmethod forHttpHeadersextrator by @RomanEmreis in #169 - rustfmt formatting by @RomanEmreis in #170
- Rate Limiter Pluggable store & greeter updates by @RomanEmreis in #171
Full Changelog: 0.8.6...0.8.7
v0.8.6
What's Changed
- Framework size optiomization, small refactoring and polishing by @RomanEmreis in #165
- Add fuzz testing for router and OpenAPI by @RomanEmreis in #166
- Middleware perf tuning by @RomanEmreis in #167
Full Changelog: 0.8.5...0.8.6
v0.8.5
What's Changed
- OpenAPI: per-status response config + RFC 7807 problem+json support by @RomanEmreis in #162
- Global Error Handler and hot-path optimizations by @RomanEmreis in #163
- Nested Route Groups by @RomanEmreis in #164
Full Changelog: 0.8.4...0.8.5
v0.8.4
What's Changed
- HTTP headers updates by @RomanEmreis in #158
- Open API integration by @RomanEmreis in #159
Full Changelog: 0.8.3...0.8.4