зеркало из https://github.com/mozilla/gecko-dev.git
10 KiB
10 KiB
v0.2.2 (March 3, 2020)
- Features:
- Implement
Reply
for allBox<T>
whereT: Reply
. - Add
name
methods toMissingHeader
,InvalidHeader
, andMissingCookie
rejections. - Add
warp::ext::optional()
filter that optionally retrieves an extension from the request.
- Implement
- Fixes:
- Fix the sending of pings when a user sends a
ws::Message::ping()
.
- Fix the sending of pings when a user sends a
v0.2.1 (January 23, 2020)
- Features:
- Add
close
andclose_with
constructors towarp::ws::Message
.
- Add
- Fixes:
- Fix
warp::fs
filters using a very small read buffer.
- Fix
v0.2.0 (January 16, 2020)
- Features:
- Update to
std::future
, addingasync
/await
support! - Add
warp::service()
to convert aFilter
into atower::Service
. - Implement
Reply
forBox<dyn Reply>
.
- Update to
- Changes:
- Refactored Rejection system (#311).
- Change
path!
macro to assume apath::end()
by default, with explicit/ ..
to allow building a prefix (#359). - Change
warp::path(str)
to accept anyAsRef<str>
argument. - Rename "2"-suffixed filters and types (
get2
toget
,ws2
tows
, etc). Filter::{or, or_else, recover}
now requireSelf::Error=Rejection
. This helps catch filters that didn't make sense (likewarp::any().or(warp::get())
).- Change several
warp::body
filters (#345). - Change
warp::cors()
to return awarp::cors::Builder
which still implementsWrap
, but can alsobuild
a cheaper-to-clone wrapper. - Change
warp::multipart
stream API to allow for errors when streaming. - Change
warp::sse
to no longer return aFilter
, addswarp::sse::reply
to do whatSse::reply
did. - Change
Server::tls()
to return a TLS server builder (#340). - Change internal
warp::never::Never
usage withstd::convert::Infallible
. - Remove
warp::ext::set()
function (#222). - Remove deprecated
warp::cookie::optional_value()
.
v0.1.20 (September 17, 2019)
- Features:
- Implement
Clone
for thewarp::cors
filter. - Add
into_bytes
method forwarp::ws::Message
.
- Implement
v0.1.19 (August 16, 2019)
- Features:
- Make
warp::multipart
andwrap::ws
support optional, though enabled by default.
- Make
- Fixes:
- Fix
warp::fs::dir
filter to reject paths containing backslashes.
- Fix
v0.1.18 (July 25, 2019)
- Features:
- Add
warp::multipart
support.
- Add
v0.1.17 (July 8, 2019)
- Features:
- Export all built-in Rejection causes in the
warp::reject
module. - Add
Server::try_bind
as fallible bind methods.
- Export all built-in Rejection causes in the
v0.1.16 (June 11, 2019)
- Features:
- Unseal the
Reply
trait: custom types can now implementReply
. - Add
warp::sse::keep_alive()
replacement forwarp::sse::keep()
which allows customizing keep-alive behavior. - Add
warp::log::Info::host()
accessor.
- Unseal the
- Fixes:
- Fix
warp::fs
filters from sending some headers for304
responses.
- Fix
v0.1.15 (April 2, 2019)
- Features:
- Add more accessors to
warp::log::Info
type for building custom log formats. - Implement
Reply
forCow<'static, str>
.
- Add more accessors to
v0.1.14 (March 19, 2019)
- Features:
- Add
warp::header::optional
filter.
- Add
v0.1.13 (February 13, 2019)
- Features:
- Implement
Reply
forVec<u8>
and&'static [u8]
. - Set
content-type
header automatically for string and bytes replies. - Add
expose_headers
towarp::cors
filter.
- Implement
v0.1.12 (January 29, 2019)
- Features:
- Implement
PartialEq
,Eq
, andClone
forwarp::ws::Message
.
- Implement
- Fixes:
- Fix panic when incoming request URI may not have a path (such as
CONNECT
requests).
- Fix panic when incoming request URI may not have a path (such as
v0.1.11 (January 14, 2019)
- Features:
- Add
warp::sse
filters for handling Server-Sent-Events. - Add
allow_headers
towarp::cors
filter.
- Add
- Fixes:
- Fix TLS handshake to close the connection if handshake fails.
v0.1.10 (December 17, 2018)
- Features:
- Add optional TLS support. Enable the
tls
feature, and then useServer::tls
. - Add
warp::cors
filter for CORS support. - Add
warp::addr::remote
to access the remote address of a request. - Add
warp::log::custom
to support customizing of access logging. - Add
warp::test::ws
to improve testing Websocket filters.
- Add optional TLS support. Enable the
v0.1.9 (October 30, 2018)
- Features:
- Add
warp::ext::get
andwarp::ext::set
to set request extensions. - Add
Filter::untuple_one
to unroll nested tuple layers from extractions. - Add
Ws2::max_send_queue
configuration method. - Add
ws::Message::is_ping
method, and yield pings to user code.
- Add
- Fixes:
- Fix panic in debug mode when receiving a websocket ping.
v0.1.8 (October 25, 2018)
- Features:
-
Improved flexibility of
Rejection
system.The
Rejection
type can now nest and combine arbitrary rejections, so it is no longer bound to a small set of meanings. The ranking of status codes is still used to determine which rejection gets priority.A different priority can be implemented by handling rejections with a
Filter::recover
, and searching for causes in order viaRejection::find_cause
.- Adds
warp::reject::custom()
to create aRejection
with anyInto<Box<std::error::Error>>
. These rejections should be handled with an eventualFilter::recover
. Any unhandled custom rejections are considered a server error. - Deprecates
Rejection::with
. Use custom rejections instead. - Deprecates
Rejection::into_cause
, as it can no longer work. Always returnsErr(Rejection)
. - Deprecates
Rejection::json
, since the format needed is too generic. Theerrors.rs
example shows how to send custom JSON when recovering from rejections. - Deprecates
warp::reject()
, since it current signals a400 Bad Request
, but in newer versions, it will signal404 Not Found
. It's deprecated simply to warn that the semantics are changing, but the function won't actually go away. - Deprecates
reject::bad_request()
,reject::forbidden()
, andreject::server_error()
. Uses custom rejections instead.
- Adds
-
Renamed
warp::path::index
towarp::path::end
.
-
v0.1.7 (October 15, 2018)
-
Features:
- Export the types returned from the
warp::body::stream()
filter,BodyStream
andStreamBuf
. - Deprecated
Rejection::into_cause
, since an upcoming Rejection refactor will make it impossible to support.
- Export the types returned from the
-
Fixes:
- Fix websocket filters to do a case-insensitive match of the
Connection
header.
- Fix websocket filters to do a case-insensitive match of the
v0.1.6 (October 5, 2018)
- Features:
- Add Conditional and Range request support for
warp::fs
filters. - Relaxed bounds on
Rejection::with
to no longer need to beSized
. - Add
warp::path::peek()
which gets the unmatched tail without adjusting the currently matched path.
- Add Conditional and Range request support for
v0.1.5 (October 3, 2018)
-
Features:
- Serve
index.html
automatically withwarp::fs::dir
filter. - Include
last-modified
header withwarp::fs
filters. - Add
warp::redirect
to easily reply with redirections. - Add
warp::reply::{with_status, with_header}
to wrapimpl Reply
s directly with a new status code or header. - Add support for running a warp
Server
with a custom source of incoming connections.Server::run_incoming
to have the runtime started automatically.Server::serve_incoming
to get a future to run on existing runtime.- These can be used to support Unix Domain Sockets, TLS, and other transports.
- Add
Rejection::into_cause()
to retrieve the original error of a rejection back. - Add
Rejection::json()
to convert a rejection into a JSON response.
- Serve
-
Fixes
- Internal errors in warp that result in rendering a
500 Internal Server Error
are now also logged at theerror
level.
- Internal errors in warp that result in rendering a
v0.1.4 (September 25, 2018)
- Features:
- Add
warp::reply::with::headers(HeaderMap)
filter wrapper. - Add
warp::cookie::optional()
to get an optional cookie value. - Add
warp::path::full()
to be able to extract the full request path without affecting route matching. - Add graceful shutdown support to the
Server
. - Allow empty query strings to be treated as for
warp::query()
.
- Add
v0.1.3 (August 28, 2018)
- Features:
- Add
warp::reject::forbidden()
to represent403 Forbidden
responses. - Add
Rejection::with(cause)
to customize rejection messages.
- Add
- Fixes:
- Fix
warp::body::form
to allow charsets in thecontent-type
header.
- Fix
v0.1.2 (August 14, 2018)
- Features:
- Implemented
Reply
forResponse<impl Into<hyper::Body>
, allowing streaming response bodies. - Add
warp::body::stream()
filter to access the request body as animpl Stream
. - Add
warp::ws2()
as a more flexible websocket filter.- This allows passing other extracted values to the upgrade callback, such as a value from a header or path.
- Deprecates
warp::ws()
, andws2()
will becomews()
in 0.2.
- Add
warp::get2()
,warp::post2()
,warp::put2()
, andwarp::delete2()
as more standard method filters that are used via chaining instead of nesting.get()
,post()
,put()
, anddelete()
are deprecated, and the new versions will become them in 0.2.
- Add
Filter::unify()
for when a filter returnsEither<T, T>
, converting theEither
into the innerT
, regardless of which variant it was.-
This requires that both sides of the
Either
be the same type. -
This can be useful when extracting a value that might be present in different places of the request.
// Allow `MyId` to be a path parameter or a header... let id = warp::path::param::<MyId>() .or(warp::header::<MyId>()) .unify(); // A way of providing default values... let dnt = warp::header::<bool>("dnt") .or(warp::any().map(|| true)) .unify();
-
- Add
content-type
header automatically to replies fromfile
anddir
filters based on file extension. - Add
warp::head()
,warp::options()
, andwarp::patch()
as new Method filters. - Try to use OS blocksize in
warp::fs
filters.
- Implemented
- Fixes:
- Chaining filters that try to consume the request body will log that the body is already consumed, and return a
500 Internal Server Error
rejection.
- Chaining filters that try to consume the request body will log that the body is already consumed, and return a
v0.1.1 (August 7, 2018)
- Features:
- Add
warp::query::raw()
filter to get query as aString
. - Add
Filter::recover()
to ease customizing of rejected responses. - Add
warp::header::headers_clone()
filter to get a clone of request'sHeaderMap
. - Add
warp::path::tail()
filter to get remaining "tail" of the request path.
- Add
- Fixes:
- URL decode path segments in
warp::fs
filters.
- URL decode path segments in
v0.1.0 (August 1, 2018)
- Intial release.