1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-30 10:42:55 +01:00
actix-web/CHANGES.md

653 lines
14 KiB
Markdown
Raw Normal View History

2017-10-31 04:46:39 +01:00
# Changes
2017-10-24 08:25:32 +02:00
2018-09-04 07:09:12 +02:00
## [0.7.5] - 2018-09-04
2018-08-29 20:58:23 +02:00
### Added
* Added the ability to pass a custom `TlsConnector`.
* Allow to register handlers on scope level #465
2018-09-01 02:24:13 +02:00
### Fixed
* Handle socket read disconnect
* Handling scoped paths without leading slashes #460
2018-09-04 07:09:12 +02:00
### Changed
* Read client response until eof if connection header set to close #464
2018-09-01 02:24:13 +02:00
2018-08-23 21:54:59 +02:00
## [0.7.4] - 2018-08-23
2018-08-03 08:17:10 +02:00
### Added
2018-08-04 01:09:46 +02:00
* Added `HttpServer::maxconn()` and `HttpServer::maxconnrate()`,
2018-08-03 17:20:59 +02:00
accept backpressure #250
2018-08-03 08:17:10 +02:00
* Allow to customize connection handshake process via `HttpServer::listen_with()`
2018-08-04 01:09:46 +02:00
and `HttpServer::bind_with()` methods
* Support making client connections via `tokio-uds`'s `UnixStream` when "uds" feature is enabled #472
2018-08-09 22:08:59 +02:00
### Changed
* It is allowed to use function with up to 10 parameters for handler with `extractor parameters`.
2018-08-23 18:39:11 +02:00
`Route::with_config()`/`Route::with_async_config()` always passes configuration objects as tuple
even for handler with one parameter.
2018-08-09 22:08:59 +02:00
* native-tls - 0.2
* `Content-Disposition` is re-worked. Its parser is now more robust and handles quoted content better. See #461
2018-08-03 17:20:59 +02:00
### Fixed
* Use zlib instead of raw deflate for decoding and encoding payloads with
`Content-Encoding: deflate`.
2018-08-03 17:20:59 +02:00
* Fixed headers formating for CORS Middleware Access-Control-Expose-Headers #436
* Fix adding multiple response headers #446
* Client includes port in HOST header when it is not default(e.g. not 80 and 443). #448
2018-08-03 08:17:10 +02:00
2018-08-07 21:00:51 +02:00
* Panic during access without routing being set #452
2018-08-08 05:48:25 +02:00
* Fixed http/2 error handling
### Deprecated
* `HttpServer::no_http2()` is deprecated, use `OpensslAcceptor::with_flags()` or
`RustlsAcceptor::with_flags()` instead
* `HttpServer::listen_tls()`, `HttpServer::listen_ssl()`, `HttpServer::listen_rustls()` have been
deprecated in favor of `HttpServer::listen_with()` with specific `acceptor`.
* `HttpServer::bind_tls()`, `HttpServer::bind_ssl()`, `HttpServer::bind_rustls()` have been
deprecated in favor of `HttpServer::bind_with()` with specific `acceptor`.
2018-08-07 21:00:51 +02:00
2018-08-01 19:51:47 +02:00
## [0.7.3] - 2018-08-01
2018-07-30 19:23:28 +02:00
### Added
* Support HTTP/2 with rustls #36
2018-08-01 19:51:47 +02:00
* Allow TestServer to open a websocket on any URL (TestServer::ws_at()) #433
### Fixed
2018-08-01 19:51:47 +02:00
* Fixed failure 0.1.2 compatibility
* Do not override HOST header for client request #428
* Gz streaming, use `flate2::write::GzDecoder` #228
* HttpRequest::url_for is not working with scopes #429
* Fixed headers' formating for CORS Middleware `Access-Control-Expose-Headers` header value to HTTP/1.1 & HTTP/2 spec-compliant format #436
2018-07-30 19:23:28 +02:00
2018-07-26 18:11:50 +02:00
## [0.7.2] - 2018-07-26
2018-07-21 14:58:08 +02:00
2018-07-24 22:25:48 +02:00
### Added
* Add implementation of `FromRequest<S>` for `Option<T>` and `Result<T, Error>`
2018-07-24 22:25:48 +02:00
* Allow to handle application prefix, i.e. allow to handle `/app` path
for application with `/app` prefix.
Check [`App::prefix()`](https://actix.rs/actix-web/actix_web/struct.App.html#method.prefix)
api doc.
* Add `CookieSessionBackend::http_only` method to set `HttpOnly` directive of cookies
### Changed
2018-07-21 14:58:08 +02:00
* Upgrade to cookie 0.11
2018-07-21 14:58:08 +02:00
* Removed the timestamp from the default logger middleware
### Fixed
* Missing response header "content-encoding" #421
2018-07-21 14:58:08 +02:00
* Fix stream draining for http/2 connections #290
2018-07-24 23:18:04 +02:00
## [0.7.1] - 2018-07-21
### Fixed
* Fixed default_resource 'not yet implemented' panic #410
2018-07-20 23:10:41 +02:00
## [0.7.0] - 2018-07-21
2018-05-24 18:24:04 +02:00
2018-06-02 18:15:44 +02:00
### Added
2018-07-20 23:10:41 +02:00
* Add `fs::StaticFileConfig` to provide means of customizing static
file services. It allows to map `mime` to `Content-Disposition`,
specify whether to use `ETag` and `Last-Modified` and allowed methods.
2018-07-20 06:49:25 +02:00
2018-07-20 23:10:41 +02:00
* Add `.has_prefixed_resource()` method to `router::ResourceInfo`
for route matching with prefix awareness
2018-06-13 23:19:48 +02:00
* Add `HttpMessage::readlines()` for reading line by line.
2018-06-12 19:32:16 +02:00
* Add `ClientRequestBuilder::form()` for sending `application/x-www-form-urlencoded` requests.
2018-07-20 23:10:41 +02:00
* Add method to configure custom error handler to `Form` extractor.
2018-06-13 00:33:28 +02:00
2018-06-12 15:49:07 +02:00
* Add methods to `HttpResponse` to retrieve, add, and delete cookies
2018-06-09 16:02:05 +02:00
* Add `.set_content_type()` and `.set_content_disposition()` methods
to `fs::NamedFile` to allow overriding the values inferred by default
* Add `fs::file_extension_to_mime()` helper function to get the MIME
type for a file extension
2018-06-07 19:59:35 +02:00
* Add `.content_disposition()` method to parse Content-Disposition of
multipart fields
2018-06-02 18:15:44 +02:00
* Re-export `actix::prelude::*` as `actix_web::actix` module.
2018-06-02 20:45:37 +02:00
* `HttpRequest::url_for_static()` for a named route with no variables segments
2018-06-02 18:15:44 +02:00
* Propagation of the application's default resource to scopes that haven't set a default resource.
2018-05-25 06:03:16 +02:00
2018-06-02 20:45:37 +02:00
### Changed
2018-05-25 06:03:16 +02:00
2018-07-20 23:10:41 +02:00
* Min rustc version is 1.26
2018-07-17 10:10:04 +02:00
2018-07-20 23:10:41 +02:00
* Use tokio instead of tokio-core
2018-07-17 10:10:04 +02:00
2018-07-20 23:10:41 +02:00
* `CookieSessionBackend` sets percent encoded cookies for outgoing HTTP messages.
* Became possible to use enums with query extractor.
Issue [#371](https://github.com/actix/actix-web/issues/371).
[Example](https://github.com/actix/actix-web/blob/master/tests/test_handlers.rs#L94-L134)
2018-05-25 06:09:20 +02:00
2018-06-12 15:49:07 +02:00
* `HttpResponse::into_builder()` now moves cookies into the builder
instead of dropping them
* For safety and performance reasons `Handler::handle()` uses `&self` instead of `&mut self`
2018-07-05 08:02:32 +02:00
* `Handler::handle()` uses `&HttpRequest` instead of `HttpRequest`
2018-06-04 22:34:07 +02:00
* Added header `User-Agent: Actix-web/<current_version>` to default headers when building a request
2018-06-02 20:45:37 +02:00
2018-06-21 03:05:26 +02:00
* port `Extensions` type from http create, we don't need `Send + Sync`
2018-06-16 23:24:08 +02:00
2018-07-05 08:02:32 +02:00
* `HttpRequest::query()` returns `Ref<HashMap<String, String>>`
* `HttpRequest::cookies()` returns `Ref<Vec<Cookie<'static>>>`
2018-06-17 04:54:30 +02:00
* `StaticFiles::new()` returns `Result<StaticFiles<S>, Error>` instead of `StaticFiles<S>`
* `StaticFiles` uses the default handler if the file does not exist
2018-06-08 05:09:08 +02:00
2018-06-01 19:55:54 +02:00
### Removed
* Remove `Route::with2()` and `Route::with3()` use tuple of extractors instead.
2018-06-17 04:48:50 +02:00
* Remove `HttpMessage::range()`
2018-07-05 08:02:32 +02:00
2018-07-11 09:34:40 +02:00
## [0.6.15] - 2018-07-11
### Fixed
* Fix h2 compatibility #352
* Fix duplicate tail of StaticFiles with index_file. #344
## [0.6.14] - 2018-06-21
### Added
* Allow to disable masking for websockets client
### Fixed
* SendRequest execution fails with the "internal error: entered unreachable code" #329
2018-05-24 18:24:04 +02:00
## [0.6.13] - 2018-06-11
* http/2 end-of-frame is not set if body is empty bytes #307
* InternalError can trigger memory unsafety #301
## [0.6.12] - 2018-06-08
2018-06-08 05:09:08 +02:00
### Added
* Add `Host` filter #287
* Allow to filter applications
* Improved failure interoperability with downcasting #285
* Allow to use custom resolver for `ClientConnector`
2018-06-08 05:09:08 +02:00
2018-06-05 18:45:07 +02:00
## [0.6.11] - 2018-06-05
2018-06-02 20:45:37 +02:00
2018-06-02 23:57:56 +02:00
* Support chunked encoding for UrlEncoded body #262
2018-06-02 20:45:37 +02:00
* `HttpRequest::url_for()` for a named route with no variables segments #265
2018-06-04 22:43:52 +02:00
* `Middleware::response()` is not invoked if error result was returned by another `Middleware::start()` #255
2018-06-05 16:40:11 +02:00
* CORS: Do not validate Origin header on non-OPTION requests #271
2018-06-05 17:55:28 +02:00
* Fix multipart upload "Incomplete" error #282
2018-06-02 20:45:37 +02:00
2018-05-24 16:56:51 +02:00
## [0.6.10] - 2018-05-24
2018-05-23 19:37:17 +02:00
### Added
2018-06-21 03:05:26 +02:00
* Allow to use path without trailing slashes for scope registration #241
2018-05-24 16:56:51 +02:00
* Allow to set encoding for exact NamedFile #239
2018-05-23 19:37:17 +02:00
### Fixed
* `TestServer::post()` actually sends `GET` request #240
2018-05-22 04:07:56 +02:00
## 0.6.9 (2018-05-22)
* Drop connection if request's payload is not fully consumed #236
* Fix streaming response with body compression
2018-05-21 06:09:54 +02:00
## 0.6.8 (2018-05-20)
2018-05-21 02:04:08 +02:00
* Fix scope resource path extractor #234
2018-05-21 05:47:20 +02:00
* Re-use tcp listener on pause/resume
2018-05-21 02:04:08 +02:00
## 0.6.7 (2018-05-17)
* Fix compilation with --no-default-features
2018-05-17 06:02:51 +02:00
## 0.6.6 (2018-05-17)
2018-05-16 04:08:34 +02:00
* Panic during middleware execution #226
2018-05-16 04:08:34 +02:00
2018-05-16 20:02:50 +02:00
* Add support for listen_tls/listen_ssl #224
2018-05-17 06:02:51 +02:00
* Implement extractor for `Session`
2018-05-17 21:20:04 +02:00
* Ranges header support for NamedFile #60
2018-05-16 04:08:34 +02:00
2018-05-15 18:29:59 +02:00
## 0.6.5 (2018-05-15)
* Fix error handling during request decoding #222
## 0.6.4 (2018-05-11)
* Fix segfault in ServerSettings::get_response_builder()
2018-05-11 00:45:06 +02:00
## 0.6.3 (2018-05-10)
* Add `Router::with_async()` method for async handler registration.
2018-05-10 18:13:26 +02:00
* Added error response functions for 501,502,503,504
2018-05-10 18:37:38 +02:00
* Fix client request timeout handling
2018-05-09 14:48:06 +02:00
## 0.6.2 (2018-05-09)
* WsWriter trait is optional.
2018-05-09 00:44:50 +02:00
## 0.6.1 (2018-05-08)
* Fix http/2 payload streaming #215
* Fix connector's default `keep-alive` and `lifetime` settings #212
* Send `ErrorNotFound` instead of `ErrorBadRequest` when path extractor fails #214
* Allow to exclude certain endpoints from logging #211
2018-05-09 03:34:36 +02:00
2018-05-08 00:19:03 +02:00
## 0.6.0 (2018-05-08)
2018-04-26 17:01:08 +02:00
2018-04-30 04:35:50 +02:00
* Add route scopes #202
2018-05-01 04:56:17 +02:00
* Allow to use ssl and non-ssl connections at the same time #206
2018-04-26 17:01:08 +02:00
* Websocket CloseCode Empty/Status is ambiguous #193
2018-04-29 17:24:19 +02:00
* Add Content-Disposition to NamedFile #204
* Allow to access Error's backtrace object
* Allow to override files listing renderer for `StaticFiles` #203
2018-05-02 22:43:51 +02:00
* Various extractor usability improvements #207
2018-04-26 17:01:08 +02:00
2018-04-24 21:25:31 +02:00
## 0.5.6 (2018-04-24)
* Make flate2 crate optional #200
## 0.5.5 (2018-04-24)
2018-04-21 16:56:11 +02:00
* Fix panic when Websocket is closed with no error code #191
* Allow to use rust backend for flate2 crate #199
2018-04-21 16:56:11 +02:00
## 0.5.4 (2018-04-19)
2018-04-19 04:05:24 +02:00
* Add identity service middleware
* Middleware response() is not invoked if there was an error in async handler #187
* Use Display formatting for InternalError Display implementation #188
2018-04-18 19:45:59 +02:00
## 0.5.3 (2018-04-18)
2018-04-17 21:55:13 +02:00
* Impossible to quote slashes in path parameters #182
2018-04-12 04:05:14 +02:00
2018-04-16 18:30:59 +02:00
## 0.5.2 (2018-04-16)
* Allow to configure StaticFiles's CpuPool, via static method or env variable
2018-04-14 04:19:30 +02:00
* Add support for custom handling of Json extractor errors #181
* Fix StaticFiles does not support percent encoded paths #177
* Fix Client Request with custom Body Stream halting on certain size requests #176
2018-04-13 01:03:22 +02:00
## 0.5.1 (2018-04-12)
2018-04-12 04:05:14 +02:00
* Client connector provides stats, `ClientConnector::stats()`
* Fix end-of-stream handling in parse_payload #173
* Fix StaticFiles generate a lot of threads #174
2018-04-12 04:05:14 +02:00
## 0.5.0 (2018-04-10)
2018-03-21 19:51:08 +01:00
2018-04-02 23:00:18 +02:00
* Type-safe path/query/form parameter handling, using serde #70
2018-03-27 03:18:38 +02:00
2018-03-31 18:18:25 +02:00
* HttpResponse builder's methods `.body()`, `.finish()`, `.json()`
return `HttpResponse` instead of `Result`
* Use more ergonomic `actix_web::Error` instead of `http::Error` for `ClientRequestBuilder::body()`
2018-04-12 01:46:21 +02:00
* Added `signed` and `private` `CookieSessionBackend`s
2018-04-03 07:08:04 +02:00
* Added `HttpRequest::resource()`, returns current matched resource
* Added `ErrorHandlers` middleware
* Fix router cannot parse Non-ASCII characters in URL #137
* Fix client connection pooling
2018-03-22 15:44:16 +01:00
* Fix long client urls #129
* Fix panic on invalid URL characters #130
* Fix logger request duration calculation #152
* Fix prefix and static file serving #168
2018-03-21 19:51:08 +01:00
2018-03-20 23:53:39 +01:00
## 0.4.10 (2018-03-20)
2018-03-18 19:05:44 +01:00
* Use `Error` instead of `InternalError` for `error::ErrorXXXX` methods
2018-03-18 19:05:44 +01:00
2018-03-19 03:27:51 +01:00
* Allow to set client request timeout
* Allow to set client websocket handshake timeout
2018-03-20 19:40:05 +01:00
* Refactor `TestServer` configuration
* Fix server websockets big payloads support
2018-03-20 19:40:05 +01:00
* Fix http/2 date header generation
2018-03-20 19:23:35 +01:00
2018-03-18 19:05:44 +01:00
2018-03-16 16:48:44 +01:00
## 0.4.9 (2018-03-16)
* Allow to disable http/2 support
2018-03-13 00:16:17 +01:00
* Wake payload reading task when data is available
2018-03-13 00:16:17 +01:00
* Fix server keep-alive handling
2018-03-13 21:15:21 +01:00
* Send Query Parameters in client requests #120
2018-03-14 01:21:22 +01:00
* Move brotli encoding to a feature
2018-03-16 20:04:01 +01:00
* Add option of default handler for `StaticFiles` handler #57
* Add basic client connection pooling
2018-03-11 13:05:13 +01:00
2018-03-12 17:13:04 +01:00
## 0.4.8 (2018-03-12)
* Allow to set read buffer capacity for server request
* Handle WouldBlock error for socket accept call
2018-03-12 17:13:04 +01:00
## 0.4.7 (2018-03-11)
2018-03-11 22:50:13 +01:00
* Fix panic on unknown content encoding
2018-03-11 23:37:33 +01:00
* Fix connection get closed too early
2018-03-12 00:53:46 +01:00
* Fix streaming response handling for http/2
2018-03-12 00:52:20 +01:00
* Better sleep on error support
2018-03-10 19:42:46 +01:00
## 0.4.6 (2018-03-10)
2018-03-09 05:56:18 +01:00
2018-03-08 20:16:54 +01:00
* Fix client cookie handling
2018-03-10 19:27:29 +01:00
* Fix json content type detection
2018-03-10 19:42:46 +01:00
* Fix CORS middleware #117
2018-03-09 05:56:18 +01:00
* Optimize websockets stream support
2018-03-08 07:40:46 +01:00
2018-03-08 06:28:54 +01:00
## 0.4.5 (2018-03-07)
2018-03-06 23:26:09 +01:00
2018-03-06 20:02:03 +01:00
* Fix compression #103 and #104
2018-03-07 15:14:44 +01:00
* Fix client cookie handling #111
2018-03-07 07:36:34 +01:00
2018-03-08 02:40:13 +01:00
* Non-blocking processing of a `NamedFile`
* Enable compression support for `NamedFile`
2018-03-06 09:43:25 +01:00
* Better support for `NamedFile` type
2018-03-08 07:40:46 +01:00
* Add `ResponseError` impl for `SendRequestError`. This improves ergonomics of the client.
2018-03-11 13:05:13 +01:00
2018-03-07 08:04:18 +01:00
* Add native-tls support for client
2018-03-07 02:04:48 +01:00
* Allow client connection timeout to be set #108
* Allow to use std::net::TcpListener for HttpServer
2018-03-08 06:10:53 +01:00
* Handle panics in worker threads
2018-03-06 23:26:09 +01:00
2018-03-05 05:28:06 +01:00
## 0.4.4 (2018-03-04)
* Allow to use Arc<Vec<u8>> as response/request body
* Fix handling of requests with an encoded body with a length > 8192 #93
2018-03-04 03:46:22 +01:00
## 0.4.3 (2018-03-03)
2018-03-03 18:29:36 +01:00
* Fix request body read bug
2018-03-04 03:46:22 +01:00
* Fix segmentation fault #79
2018-03-03 18:29:36 +01:00
* Set reuse address before bind #90
2018-03-03 07:31:58 +01:00
## 0.4.2 (2018-03-02)
* Better naming for websockets implementation
* Add `Pattern::with_prefix()`, make it more usable outside of actix
* Add csrf middleware for filter for cross-site request forgery #89
2018-03-02 21:26:31 +01:00
2018-03-03 05:47:23 +01:00
* Fix disconnect on idle connections
## 0.4.1 (2018-03-01)
2018-03-02 03:32:31 +01:00
* Rename `Route::p()` to `Route::filter()`
2018-03-02 04:12:59 +01:00
* Better naming for http codes
* Fix payload parse in situation when socket data is not ready.
2018-02-28 20:51:14 +01:00
2018-02-28 21:35:16 +01:00
* Fix Session mutable borrow lifetime #87
2018-02-28 20:51:14 +01:00
2018-02-28 08:30:26 +01:00
## 0.4.0 (2018-02-28)
* Actix 0.5 compatibility
2018-02-28 08:30:26 +01:00
* Fix request json/urlencoded loaders
* Simplify HttpServer type definition
* Added HttpRequest::encoding() method
* Added HttpRequest::mime_type() method
* Added HttpRequest::uri_mut(), allows to modify request uri
2018-01-29 12:23:45 +01:00
* Added StaticFiles::index_file()
* Added http client
2018-02-24 05:29:35 +01:00
* Added websocket client
2018-01-29 12:23:45 +01:00
* Added TestServer::ws(), test websockets client
2018-02-24 05:29:35 +01:00
* Added TestServer http client support
* Allow to override content encoding on application level
## 0.3.3 (2018-01-25)
* Stop processing any events after context stop
* Re-enable write back-pressure for h1 connections
* Refactor HttpServer::start_ssl() method
* Upgrade openssl to 0.10
2018-01-21 17:12:04 +01:00
## 0.3.2 (2018-01-21)
2018-01-21 01:12:38 +01:00
* Fix HEAD requests handling
2018-01-21 05:12:24 +01:00
* Log request processing errors
* Always enable content encoding if encoding explicitly selected
2018-01-21 05:12:24 +01:00
* Allow multiple Applications on a single server with different state #49
* CORS middleware: allowed_headers is defaulting to None #50
2018-01-21 05:12:24 +01:00
2018-01-14 01:57:01 +01:00
## 0.3.1 (2018-01-13)
2018-01-13 20:17:48 +01:00
* Fix directory entry path #47
* Do not enable chunked encoding for HTTP/1.0
2018-01-13 20:17:48 +01:00
2018-01-14 01:57:01 +01:00
* Allow explicitly disable chunked encoding
2017-10-24 08:25:32 +02:00
2018-01-12 21:31:33 +01:00
## 0.3.0 (2018-01-12)
2017-11-06 10:24:49 +01:00
* HTTP/2 Support
2017-11-30 23:42:20 +01:00
* Refactor streaming responses
2017-11-16 07:06:28 +01:00
* Refactor error handling
2017-11-10 07:08:54 +01:00
* Asynchronous middlewares
2017-11-10 22:26:12 +01:00
* Refactor logger middleware
2017-11-20 04:26:31 +01:00
* Content compression/decompression (br, gzip, deflate)
2018-01-04 08:59:12 +01:00
* Server multi-threading
2018-06-21 03:05:26 +02:00
* Graceful shutdown support
2018-01-04 08:59:12 +01:00
2017-11-06 10:24:49 +01:00
2017-11-03 21:35:34 +01:00
## 0.2.1 (2017-11-03)
* Allow to start tls server with `HttpServer::serve_tls`
2017-11-03 21:35:34 +01:00
* Export `Frame` enum
* Add conversion impl from `HttpResponse` and `BinaryBody` to a `Frame`
2017-11-06 10:24:49 +01:00
2017-10-31 04:39:56 +01:00
## 0.2.0 (2017-10-30)
2017-10-24 08:25:32 +02:00
* Do not use `http::Uri` as it can not parse some valid paths
2017-10-24 08:25:32 +02:00
* Refactor response `Body`
* Refactor `RouteRecognizer` usability
2017-10-24 08:39:01 +02:00
* Refactor `HttpContext::write`
2017-10-27 08:14:33 +02:00
* Refactor `Payload` stream
2017-10-24 08:39:01 +02:00
* Re-use `BinaryBody` for `Frame::Payload`
2017-10-30 04:51:06 +01:00
* Stop http actor on `write_eof`
2017-10-26 01:25:26 +02:00
* Fix disconnection handling.
2017-10-24 08:25:32 +02:00
## 0.1.0 (2017-10-23)
* First release