mirror of https://github.com/fafhrd91/actix-web
				
				
				
			use dash hyphenation in markdown
This commit is contained in:
		
							parent
							
								
									212c6926f9
								
							
						
					
					
						commit
						de20d21703
					
				|  | @ -33,5 +33,5 @@ Please search on the [Actix Web issue tracker](https://github.com/actix/actix-we | ||||||
| ## Your Environment | ## Your Environment | ||||||
| <!--- Include as many relevant details about the environment you experienced the bug in --> | <!--- Include as many relevant details about the environment you experienced the bug in --> | ||||||
| 
 | 
 | ||||||
| * Rust Version (I.e, output of `rustc -V`): | - Rust Version (I.e, output of `rustc -V`): | ||||||
| * Actix Web Version: | - Actix Web Version: | ||||||
|  |  | ||||||
							
								
								
									
										552
									
								
								CHANGES.md
								
								
								
								
							
							
						
						
									
										552
									
								
								CHANGES.md
								
								
								
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							|  | @ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo | ||||||
| 
 | 
 | ||||||
| Examples of behavior that contributes to creating a positive environment include: | Examples of behavior that contributes to creating a positive environment include: | ||||||
| 
 | 
 | ||||||
| * Using welcoming and inclusive language | - Using welcoming and inclusive language | ||||||
| * Being respectful of differing viewpoints and experiences | - Being respectful of differing viewpoints and experiences | ||||||
| * Gracefully accepting constructive criticism | - Gracefully accepting constructive criticism | ||||||
| * Focusing on what is best for the community | - Focusing on what is best for the community | ||||||
| * Showing empathy towards other community members | - Showing empathy towards other community members | ||||||
| 
 | 
 | ||||||
| Examples of unacceptable behavior by participants include: | Examples of unacceptable behavior by participants include: | ||||||
| 
 | 
 | ||||||
| * The use of sexualized language or imagery and unwelcome sexual attention or advances | - The use of sexualized language or imagery and unwelcome sexual attention or advances | ||||||
| * Trolling, insulting/derogatory comments, and personal or political attacks | - Trolling, insulting/derogatory comments, and personal or political attacks | ||||||
| * Public or private harassment | - Public or private harassment | ||||||
| * Publishing others' private information, such as a physical or electronic address, without explicit permission | - Publishing others' private information, such as a physical or electronic address, without explicit permission | ||||||
| * Other conduct which could reasonably be considered inappropriate in a professional setting | - Other conduct which could reasonably be considered inappropriate in a professional setting | ||||||
| 
 | 
 | ||||||
| ## Our Responsibilities | ## Our Responsibilities | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										156
									
								
								MIGRATION.md
								
								
								
								
							
							
						
						
									
										156
									
								
								MIGRATION.md
								
								
								
								
							|  | @ -1,6 +1,6 @@ | ||||||
| ## Unreleased | ## Unreleased | ||||||
| 
 | 
 | ||||||
| * The default `NormalizePath` behavior now strips trailing slashes by default. This was | - The default `NormalizePath` behavior now strips trailing slashes by default. This was | ||||||
|   previously documented to be the case in v3 but the behavior now matches. The effect is that |   previously documented to be the case in v3 but the behavior now matches. The effect is that | ||||||
|   routes defined with trailing slashes will become inaccessible when |   routes defined with trailing slashes will become inaccessible when | ||||||
|   using `NormalizePath::default()`. As such, calling `NormalizePath::default()` will log a warning. |   using `NormalizePath::default()`. As such, calling `NormalizePath::default()` will log a warning. | ||||||
|  | @ -11,9 +11,9 @@ | ||||||
| 
 | 
 | ||||||
|   Alternatively, explicitly require trailing slashes: `NormalizePath::new(TrailingSlash::Always)`. |   Alternatively, explicitly require trailing slashes: `NormalizePath::new(TrailingSlash::Always)`. | ||||||
| 
 | 
 | ||||||
| * The `type Config` of `FromRequest` was removed. | - The `type Config` of `FromRequest` was removed. | ||||||
| 
 | 
 | ||||||
| * Feature flag `compress` has been split into its supported algorithm (brotli, gzip, zstd). | - Feature flag `compress` has been split into its supported algorithm (brotli, gzip, zstd). | ||||||
|   By default all compression algorithms are enabled. |   By default all compression algorithms are enabled. | ||||||
|   To select algorithm you want to include with `middleware::Compress` use following flags: |   To select algorithm you want to include with `middleware::Compress` use following flags: | ||||||
|   - `compress-brotli` |   - `compress-brotli` | ||||||
|  | @ -28,30 +28,30 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0 | ## 3.0.0 | ||||||
| 
 | 
 | ||||||
| * The return type for `ServiceRequest::app_data::<T>()` was changed from returning a `Data<T>` to | - The return type for `ServiceRequest::app_data::<T>()` was changed from returning a `Data<T>` to | ||||||
|   simply a `T`. To access a `Data<T>` use `ServiceRequest::app_data::<Data<T>>()`. |   simply a `T`. To access a `Data<T>` use `ServiceRequest::app_data::<Data<T>>()`. | ||||||
| 
 | 
 | ||||||
| * Cookie handling has been offloaded to the `cookie` crate: | - Cookie handling has been offloaded to the `cookie` crate: | ||||||
|   * `USERINFO_ENCODE_SET` is no longer exposed. Percent-encoding is still supported; check docs. |   * `USERINFO_ENCODE_SET` is no longer exposed. Percent-encoding is still supported; check docs. | ||||||
|   * Some types now require lifetime parameters. |   * Some types now require lifetime parameters. | ||||||
| 
 | 
 | ||||||
| * The time crate was updated to `v0.2`, a major breaking change to the time crate, which affects | - The time crate was updated to `v0.2`, a major breaking change to the time crate, which affects | ||||||
|   any `actix-web` method previously expecting a time v0.1 input. |   any `actix-web` method previously expecting a time v0.1 input. | ||||||
| 
 | 
 | ||||||
| * Setting a cookie's SameSite property, explicitly, to `SameSite::None` will now | - Setting a cookie's SameSite property, explicitly, to `SameSite::None` will now | ||||||
|   result in `SameSite=None` being sent with the response Set-Cookie header. |   result in `SameSite=None` being sent with the response Set-Cookie header. | ||||||
|   To create a cookie without a SameSite attribute, remove any calls setting same_site. |   To create a cookie without a SameSite attribute, remove any calls setting same_site. | ||||||
| 
 | 
 | ||||||
| * actix-http support for Actors messages was moved to actix-http crate and is enabled  | - actix-http support for Actors messages was moved to actix-http crate and is enabled  | ||||||
|   with feature `actors` |   with feature `actors` | ||||||
| 
 | 
 | ||||||
| * content_length function is removed from actix-http. | - content_length function is removed from actix-http. | ||||||
|   You can set Content-Length by normally setting the response body or calling no_chunking function.  |   You can set Content-Length by normally setting the response body or calling no_chunking function.  | ||||||
| 
 | 
 | ||||||
| * `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a | - `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a | ||||||
|   `u64` instead of a `usize`. |   `u64` instead of a `usize`. | ||||||
| 
 | 
 | ||||||
| * Code that was using `path.<index>` to access a `web::Path<(A, B, C)>`s elements now needs to use | - Code that was using `path.<index>` to access a `web::Path<(A, B, C)>`s elements now needs to use | ||||||
|   destructuring or `.into_inner()`. For example: |   destructuring or `.into_inner()`. For example: | ||||||
| 
 | 
 | ||||||
|   ```rust |   ```rust | ||||||
|  | @ -71,35 +71,35 @@ | ||||||
|   } |   } | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * `middleware::NormalizePath` can now also be configured to trim trailing slashes instead of always keeping one. | - `middleware::NormalizePath` can now also be configured to trim trailing slashes instead of always keeping one. | ||||||
|   It will need `middleware::normalize::TrailingSlash` when being constructed with `NormalizePath::new(...)`, |   It will need `middleware::normalize::TrailingSlash` when being constructed with `NormalizePath::new(...)`, | ||||||
|   or for an easier migration you can replace `wrap(middleware::NormalizePath)` with `wrap(middleware::NormalizePath::new(TrailingSlash::MergeOnly))`. |   or for an easier migration you can replace `wrap(middleware::NormalizePath)` with `wrap(middleware::NormalizePath::new(TrailingSlash::MergeOnly))`. | ||||||
| 
 | 
 | ||||||
| * `HttpServer::maxconn` is renamed to the more expressive `HttpServer::max_connections`. | - `HttpServer::maxconn` is renamed to the more expressive `HttpServer::max_connections`. | ||||||
| 
 | 
 | ||||||
| * `HttpServer::maxconnrate` is renamed to the more expressive `HttpServer::max_connection_rate`. | - `HttpServer::maxconnrate` is renamed to the more expressive `HttpServer::max_connection_rate`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0 | ## 2.0.0 | ||||||
| 
 | 
 | ||||||
| * `HttpServer::start()` renamed to `HttpServer::run()`. It also possible to | - `HttpServer::start()` renamed to `HttpServer::run()`. It also possible to | ||||||
|   `.await` on `run` method result, in that case it awaits server exit. |   `.await` on `run` method result, in that case it awaits server exit. | ||||||
| 
 | 
 | ||||||
| * `App::register_data()` renamed to `App::app_data()` and accepts any type `T: 'static`. | - `App::register_data()` renamed to `App::app_data()` and accepts any type `T: 'static`. | ||||||
|   Stored data is available via `HttpRequest::app_data()` method at runtime. |   Stored data is available via `HttpRequest::app_data()` method at runtime. | ||||||
| 
 | 
 | ||||||
| * Extractor configuration must be registered with `App::app_data()` instead of `App::data()` | - Extractor configuration must be registered with `App::app_data()` instead of `App::data()` | ||||||
| 
 | 
 | ||||||
| * Sync handlers has been removed. `.to_async()` method has been renamed to `.to()` | - Sync handlers has been removed. `.to_async()` method has been renamed to `.to()` | ||||||
|   replace `fn` with `async fn` to convert sync handler to async |   replace `fn` with `async fn` to convert sync handler to async | ||||||
| 
 | 
 | ||||||
| * `actix_http_test::TestServer` moved to `actix_web::test` module. To start | - `actix_http_test::TestServer` moved to `actix_web::test` module. To start | ||||||
|   test server use `test::start()` or `test_start_with_config()` methods |   test server use `test::start()` or `test_start_with_config()` methods | ||||||
| 
 | 
 | ||||||
| * `ResponseError` trait has been reafctored. `ResponseError::error_response()` renders | - `ResponseError` trait has been reafctored. `ResponseError::error_response()` renders | ||||||
|   http response. |   http response. | ||||||
| 
 | 
 | ||||||
| * Feature `rust-tls` renamed to `rustls` | - Feature `rust-tls` renamed to `rustls` | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -113,7 +113,7 @@ | ||||||
|     actix-web = { version = "2.0.0", features = ["rustls"] } |     actix-web = { version = "2.0.0", features = ["rustls"] } | ||||||
|     ``` |     ``` | ||||||
| 
 | 
 | ||||||
| * Feature `ssl` renamed to `openssl` | - Feature `ssl` renamed to `openssl` | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -126,11 +126,11 @@ | ||||||
|     ```rust |     ```rust | ||||||
|     actix-web = { version = "2.0.0", features = ["openssl"] } |     actix-web = { version = "2.0.0", features = ["openssl"] } | ||||||
|     ``` |     ``` | ||||||
| * `Cors` builder now requires that you call `.finish()` to construct the middleware | - `Cors` builder now requires that you call `.finish()` to construct the middleware | ||||||
| 
 | 
 | ||||||
| ## 1.0.1 | ## 1.0.1 | ||||||
| 
 | 
 | ||||||
| * Cors middleware has been moved to `actix-cors` crate | - Cors middleware has been moved to `actix-cors` crate | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -144,7 +144,7 @@ | ||||||
|   use actix_cors::Cors; |   use actix_cors::Cors; | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * Identity middleware has been moved to `actix-identity` crate | - Identity middleware has been moved to `actix-identity` crate | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -161,7 +161,7 @@ | ||||||
| 
 | 
 | ||||||
| ## 1.0.0 | ## 1.0.0 | ||||||
| 
 | 
 | ||||||
| * Extractor configuration. In version 1.0 this is handled with the new `Data` mechanism for both setting and retrieving the configuration | - Extractor configuration. In version 1.0 this is handled with the new `Data` mechanism for both setting and retrieving the configuration | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -219,7 +219,7 @@ | ||||||
|   ) |   ) | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * Resource registration. 1.0 version uses generalized resource | - Resource registration. 1.0 version uses generalized resource | ||||||
|   registration via `.service()` method. |   registration via `.service()` method. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
|  | @ -239,7 +239,7 @@ | ||||||
|             .route(web::post().to(post_handler)) |             .route(web::post().to(post_handler)) | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * Scope registration. | - Scope registration. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -263,7 +263,7 @@ | ||||||
|       ); |       ); | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * `.with()`, `.with_async()` registration methods have been renamed to `.to()` and `.to_async()`. | - `.with()`, `.with_async()` registration methods have been renamed to `.to()` and `.to_async()`. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -277,7 +277,7 @@ | ||||||
|     App.new().service(web::resource("/welcome").to(welcome)) |     App.new().service(web::resource("/welcome").to(welcome)) | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * Passing arguments to handler with extractors, multiple arguments are allowed | - Passing arguments to handler with extractors, multiple arguments are allowed | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -295,7 +295,7 @@ | ||||||
|   } |   } | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * `.f()`, `.a()` and `.h()` handler registration methods have been removed. | - `.f()`, `.a()` and `.h()` handler registration methods have been removed. | ||||||
|   Use `.to()` for handlers and `.to_async()` for async handlers. Handler function |   Use `.to()` for handlers and `.to_async()` for async handlers. Handler function | ||||||
|   must use extractors. |   must use extractors. | ||||||
| 
 | 
 | ||||||
|  | @ -311,7 +311,7 @@ | ||||||
|     App.new().service(web::resource("/welcome").to(welcome)) |     App.new().service(web::resource("/welcome").to(welcome)) | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * `HttpRequest` does not provide access to request's payload stream. | - `HttpRequest` does not provide access to request's payload stream. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -341,7 +341,7 @@ | ||||||
|   } |   } | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * `State` is now `Data`.  You register Data during the App initialization process | - `State` is now `Data`.  You register Data during the App initialization process | ||||||
|   and then access it from handlers either using a Data extractor or using |   and then access it from handlers either using a Data extractor or using | ||||||
|   HttpRequest's api. |   HttpRequest's api. | ||||||
| 
 | 
 | ||||||
|  | @ -377,7 +377,7 @@ | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| * AsyncResponder is removed, use `.to_async()` registration method and `impl Future<>` as result type. | - AsyncResponder is removed, use `.to_async()` registration method and `impl Future<>` as result type. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -393,7 +393,7 @@ | ||||||
|   .. simply omit AsyncResponder and the corresponding responder() finish method |   .. simply omit AsyncResponder and the corresponding responder() finish method | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| * Middleware | - Middleware | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
| 
 | 
 | ||||||
|  | @ -410,7 +410,7 @@ | ||||||
|            .route("/index.html", web::get().to(index)); |            .route("/index.html", web::get().to(index)); | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * `HttpRequest::body()`, `HttpRequest::urlencoded()`, `HttpRequest::json()`, `HttpRequest::multipart()` | - `HttpRequest::body()`, `HttpRequest::urlencoded()`, `HttpRequest::json()`, `HttpRequest::multipart()` | ||||||
|   method have been removed. Use `Bytes`, `String`, `Form`, `Json`, `Multipart` extractors instead. |   method have been removed. Use `Bytes`, `String`, `Form`, `Json`, `Multipart` extractors instead. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
|  | @ -432,9 +432,9 @@ | ||||||
|   } |   } | ||||||
|   ``` |   ``` | ||||||
| 
 | 
 | ||||||
| * `actix_web::server` module has been removed. To start http server use `actix_web::HttpServer` type | - `actix_web::server` module has been removed. To start http server use `actix_web::HttpServer` type | ||||||
| 
 | 
 | ||||||
| * StaticFiles and NamedFile have been moved to a separate crate. | - StaticFiles and NamedFile have been moved to a separate crate. | ||||||
| 
 | 
 | ||||||
|   instead of `use actix_web::fs::StaticFile` |   instead of `use actix_web::fs::StaticFile` | ||||||
| 
 | 
 | ||||||
|  | @ -444,20 +444,20 @@ | ||||||
| 
 | 
 | ||||||
|   use `use actix_files::NamedFile` |   use `use actix_files::NamedFile` | ||||||
| 
 | 
 | ||||||
| * Multipart has been moved to a separate crate. | - Multipart has been moved to a separate crate. | ||||||
| 
 | 
 | ||||||
|   instead of `use actix_web::multipart::Multipart` |   instead of `use actix_web::multipart::Multipart` | ||||||
| 
 | 
 | ||||||
|   use `use actix_multipart::Multipart` |   use `use actix_multipart::Multipart` | ||||||
| 
 | 
 | ||||||
| * Response compression is not enabled by default. | - Response compression is not enabled by default. | ||||||
|   To enable, use `Compress` middleware, `App::new().wrap(Compress::default())`. |   To enable, use `Compress` middleware, `App::new().wrap(Compress::default())`. | ||||||
| 
 | 
 | ||||||
| * Session middleware moved to actix-session crate | - Session middleware moved to actix-session crate | ||||||
| 
 | 
 | ||||||
| * Actors support have been moved to `actix-web-actors` crate | - Actors support have been moved to `actix-web-actors` crate | ||||||
| 
 | 
 | ||||||
| * Custom Error | - Custom Error | ||||||
| 
 | 
 | ||||||
|   Instead of error_response method alone, ResponseError now provides two methods: error_response and render_response respectively. Where, error_response creates the error response and render_response returns the error response to the caller.  |   Instead of error_response method alone, ResponseError now provides two methods: error_response and render_response respectively. Where, error_response creates the error response and render_response returns the error response to the caller.  | ||||||
| 
 | 
 | ||||||
|  | @ -471,7 +471,7 @@ | ||||||
| 
 | 
 | ||||||
| ## 0.7.15 | ## 0.7.15 | ||||||
| 
 | 
 | ||||||
| * The `' '` character is not percent decoded anymore before matching routes. If you need to use it in | - The `' '` character is not percent decoded anymore before matching routes. If you need to use it in | ||||||
|   your routes, you should use `%20`. |   your routes, you should use `%20`. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
|  | @ -496,18 +496,18 @@ | ||||||
|     } |     } | ||||||
|     ``` |     ``` | ||||||
| 
 | 
 | ||||||
| * If you used `AsyncResult::async` you need to replace it with `AsyncResult::future` | - If you used `AsyncResult::async` you need to replace it with `AsyncResult::future` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.7.4 | ## 0.7.4 | ||||||
| 
 | 
 | ||||||
| * `Route::with_config()`/`Route::with_async_config()` always passes configuration objects as tuple | - `Route::with_config()`/`Route::with_async_config()` always passes configuration objects as tuple | ||||||
|   even for handler with one parameter. |   even for handler with one parameter. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.7 | ## 0.7 | ||||||
| 
 | 
 | ||||||
| * `HttpRequest` does not implement `Stream` anymore. If you need to read request payload | - `HttpRequest` does not implement `Stream` anymore. If you need to read request payload | ||||||
|   use `HttpMessage::payload()` method. |   use `HttpMessage::payload()` method. | ||||||
| 
 | 
 | ||||||
|   instead of |   instead of | ||||||
|  | @ -533,10 +533,10 @@ | ||||||
|     } |     } | ||||||
|     ``` |     ``` | ||||||
| 
 | 
 | ||||||
| * [Middleware](https://actix.rs/actix-web/actix_web/middleware/trait.Middleware.html) | - [Middleware](https://actix.rs/actix-web/actix_web/middleware/trait.Middleware.html) | ||||||
|   trait uses `&HttpRequest` instead of `&mut HttpRequest`. |   trait uses `&HttpRequest` instead of `&mut HttpRequest`. | ||||||
| 
 | 
 | ||||||
| * Removed `Route::with2()` and `Route::with3()` use tuple of extractors instead. | - Removed `Route::with2()` and `Route::with3()` use tuple of extractors instead. | ||||||
| 
 | 
 | ||||||
|     instead of |     instead of | ||||||
| 
 | 
 | ||||||
|  | @ -550,17 +550,17 @@ | ||||||
|     fn index((query, json): (Query<..>, Json<MyStruct)) -> impl Responder {} |     fn index((query, json): (Query<..>, Json<MyStruct)) -> impl Responder {} | ||||||
|     ``` |     ``` | ||||||
| 
 | 
 | ||||||
| * `Handler::handle()` uses `&self` instead of `&mut self` | - `Handler::handle()` uses `&self` instead of `&mut self` | ||||||
| 
 | 
 | ||||||
| * `Handler::handle()` accepts reference to `HttpRequest<_>` instead of value | - `Handler::handle()` accepts reference to `HttpRequest<_>` instead of value | ||||||
| 
 | 
 | ||||||
| * Removed deprecated `HttpServer::threads()`, use | - Removed deprecated `HttpServer::threads()`, use | ||||||
|   [HttpServer::workers()](https://actix.rs/actix-web/actix_web/server/struct.HttpServer.html#method.workers) instead. |   [HttpServer::workers()](https://actix.rs/actix-web/actix_web/server/struct.HttpServer.html#method.workers) instead. | ||||||
| 
 | 
 | ||||||
| * Renamed `client::ClientConnectorError::Connector` to | - Renamed `client::ClientConnectorError::Connector` to | ||||||
|   `client::ClientConnectorError::Resolver` |   `client::ClientConnectorError::Resolver` | ||||||
| 
 | 
 | ||||||
| * `Route::with()` does not return `ExtractorConfig`, to configure | - `Route::with()` does not return `ExtractorConfig`, to configure | ||||||
|   extractor use `Route::with_config()` |   extractor use `Route::with_config()` | ||||||
| 
 | 
 | ||||||
|     instead of |     instead of | ||||||
|  | @ -589,26 +589,26 @@ | ||||||
|     } |     } | ||||||
|     ``` |     ``` | ||||||
| 
 | 
 | ||||||
| * `Route::with_async()` does not return `ExtractorConfig`, to configure | - `Route::with_async()` does not return `ExtractorConfig`, to configure | ||||||
|   extractor use `Route::with_async_config()` |   extractor use `Route::with_async_config()` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6 | ## 0.6 | ||||||
| 
 | 
 | ||||||
| * `Path<T>` extractor return `ErrorNotFound` on failure instead of `ErrorBadRequest` | - `Path<T>` extractor return `ErrorNotFound` on failure instead of `ErrorBadRequest` | ||||||
| 
 | 
 | ||||||
| * `ws::Message::Close` now includes optional close reason. | - `ws::Message::Close` now includes optional close reason. | ||||||
|   `ws::CloseCode::Status` and `ws::CloseCode::Empty` have been removed. |   `ws::CloseCode::Status` and `ws::CloseCode::Empty` have been removed. | ||||||
| 
 | 
 | ||||||
| * `HttpServer::threads()` renamed to `HttpServer::workers()`. | - `HttpServer::threads()` renamed to `HttpServer::workers()`. | ||||||
| 
 | 
 | ||||||
| * `HttpServer::start_ssl()` and `HttpServer::start_tls()` deprecated. | - `HttpServer::start_ssl()` and `HttpServer::start_tls()` deprecated. | ||||||
|   Use `HttpServer::bind_ssl()` and `HttpServer::bind_tls()` instead. |   Use `HttpServer::bind_ssl()` and `HttpServer::bind_tls()` instead. | ||||||
| 
 | 
 | ||||||
| * `HttpRequest::extensions()` returns read only reference to the request's Extension | - `HttpRequest::extensions()` returns read only reference to the request's Extension | ||||||
|   `HttpRequest::extensions_mut()` returns mutable reference. |   `HttpRequest::extensions_mut()` returns mutable reference. | ||||||
| 
 | 
 | ||||||
| * Instead of | - Instead of | ||||||
| 
 | 
 | ||||||
|    `use actix_web::middleware::{ |    `use actix_web::middleware::{ | ||||||
|         CookieSessionBackend, CookieSessionError, RequestSession, |         CookieSessionBackend, CookieSessionError, RequestSession, | ||||||
|  | @ -619,15 +619,15 @@ | ||||||
|    `use actix_web::middleware::session{CookieSessionBackend, CookieSessionError, |    `use actix_web::middleware::session{CookieSessionBackend, CookieSessionError, | ||||||
|         RequestSession, Session, SessionBackend, SessionImpl, SessionStorage};` |         RequestSession, Session, SessionBackend, SessionImpl, SessionStorage};` | ||||||
| 
 | 
 | ||||||
| * `FromRequest::from_request()` accepts mutable reference to a request | - `FromRequest::from_request()` accepts mutable reference to a request | ||||||
| 
 | 
 | ||||||
| * `FromRequest::Result` has to implement `Into<Reply<Self>>` | - `FromRequest::Result` has to implement `Into<Reply<Self>>` | ||||||
| 
 | 
 | ||||||
| * [`Responder::respond_to()`]( | - [`Responder::respond_to()`]( | ||||||
|   https://actix.rs/actix-web/actix_web/trait.Responder.html#tymethod.respond_to) |   https://actix.rs/actix-web/actix_web/trait.Responder.html#tymethod.respond_to) | ||||||
|   is generic over `S` |   is generic over `S` | ||||||
| 
 | 
 | ||||||
| *  Use `Query` extractor instead of HttpRequest::query()`. | -  Use `Query` extractor instead of HttpRequest::query()`. | ||||||
| 
 | 
 | ||||||
|    ```rust |    ```rust | ||||||
|    fn index(q: Query<HashMap<String, String>>) -> Result<..> { |    fn index(q: Query<HashMap<String, String>>) -> Result<..> { | ||||||
|  | @ -641,37 +641,37 @@ | ||||||
|    let q = Query::<HashMap<String, String>>::extract(req); |    let q = Query::<HashMap<String, String>>::extract(req); | ||||||
|    ``` |    ``` | ||||||
| 
 | 
 | ||||||
| * Websocket operations are implemented as `WsWriter` trait. | - Websocket operations are implemented as `WsWriter` trait. | ||||||
|   you need to use `use actix_web::ws::WsWriter` |   you need to use `use actix_web::ws::WsWriter` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5 | ## 0.5 | ||||||
| 
 | 
 | ||||||
| * `HttpResponseBuilder::body()`, `.finish()`, `.json()` | - `HttpResponseBuilder::body()`, `.finish()`, `.json()` | ||||||
|    methods return `HttpResponse` instead of `Result<HttpResponse>` |    methods return `HttpResponse` instead of `Result<HttpResponse>` | ||||||
| 
 | 
 | ||||||
| * `actix_web::Method`, `actix_web::StatusCode`, `actix_web::Version` | - `actix_web::Method`, `actix_web::StatusCode`, `actix_web::Version` | ||||||
|    moved to `actix_web::http` module |    moved to `actix_web::http` module | ||||||
| 
 | 
 | ||||||
| * `actix_web::header` moved to `actix_web::http::header` | - `actix_web::header` moved to `actix_web::http::header` | ||||||
| 
 | 
 | ||||||
| * `NormalizePath` moved to `actix_web::http` module | - `NormalizePath` moved to `actix_web::http` module | ||||||
| 
 | 
 | ||||||
| * `HttpServer` moved to `actix_web::server`, added new `actix_web::server::new()` function, | - `HttpServer` moved to `actix_web::server`, added new `actix_web::server::new()` function, | ||||||
|   shortcut for `actix_web::server::HttpServer::new()` |   shortcut for `actix_web::server::HttpServer::new()` | ||||||
| 
 | 
 | ||||||
| * `DefaultHeaders` middleware does not use separate builder, all builder methods moved to type itself | - `DefaultHeaders` middleware does not use separate builder, all builder methods moved to type itself | ||||||
| 
 | 
 | ||||||
| * `StaticFiles::new()`'s show_index parameter removed, use `show_files_listing()` method instead. | - `StaticFiles::new()`'s show_index parameter removed, use `show_files_listing()` method instead. | ||||||
| 
 | 
 | ||||||
| * `CookieSessionBackendBuilder` removed, all methods moved to `CookieSessionBackend` type | - `CookieSessionBackendBuilder` removed, all methods moved to `CookieSessionBackend` type | ||||||
| 
 | 
 | ||||||
| * `actix_web::httpcodes` module is deprecated, `HttpResponse::Ok()`, `HttpResponse::Found()` and other `HttpResponse::XXX()` | - `actix_web::httpcodes` module is deprecated, `HttpResponse::Ok()`, `HttpResponse::Found()` and other `HttpResponse::XXX()` | ||||||
|    functions should be used instead |    functions should be used instead | ||||||
| 
 | 
 | ||||||
| * `ClientRequestBuilder::body()` returns `Result<_, actix_web::Error>` | - `ClientRequestBuilder::body()` returns `Result<_, actix_web::Error>` | ||||||
|   instead of `Result<_, http::Error>` |   instead of `Result<_, http::Error>` | ||||||
| 
 | 
 | ||||||
| * `Application` renamed to a `App` | - `Application` renamed to a `App` | ||||||
| 
 | 
 | ||||||
| * `actix_web::Reply`, `actix_web::Resource` moved to `actix_web::dev` | - `actix_web::Reply`, `actix_web::Resource` moved to `actix_web::dev` | ||||||
|  |  | ||||||
							
								
								
									
										60
									
								
								README.md
								
								
								
								
							
							
						
						
									
										60
									
								
								README.md
								
								
								
								
							|  | @ -21,25 +21,25 @@ | ||||||
| 
 | 
 | ||||||
| ## Features | ## Features | ||||||
| 
 | 
 | ||||||
| * Supports *HTTP/1.x* and *HTTP/2* | - Supports *HTTP/1.x* and *HTTP/2* | ||||||
| * Streaming and pipelining | - Streaming and pipelining | ||||||
| * Keep-alive and slow requests handling | - Keep-alive and slow requests handling | ||||||
| * Client/server [WebSockets](https://actix.rs/docs/websockets/) support | - Client/server [WebSockets](https://actix.rs/docs/websockets/) support | ||||||
| * Transparent content compression/decompression (br, gzip, deflate, zstd) | - Transparent content compression/decompression (br, gzip, deflate, zstd) | ||||||
| * Powerful [request routing](https://actix.rs/docs/url-dispatch/) | - Powerful [request routing](https://actix.rs/docs/url-dispatch/) | ||||||
| * Multipart streams | - Multipart streams | ||||||
| * Static assets | - Static assets | ||||||
| * SSL support using OpenSSL or Rustls | - SSL support using OpenSSL or Rustls | ||||||
| * Middlewares ([Logger, Session, CORS, etc](https://actix.rs/docs/middleware/)) | - Middlewares ([Logger, Session, CORS, etc](https://actix.rs/docs/middleware/)) | ||||||
| * Includes an async [HTTP client](https://docs.rs/awc/) | - Includes an async [HTTP client](https://docs.rs/awc/) | ||||||
| * Runs on stable Rust 1.52+ | - Runs on stable Rust 1.52+ | ||||||
| 
 | 
 | ||||||
| ## Documentation | ## Documentation | ||||||
| 
 | 
 | ||||||
| * [Website & User Guide](https://actix.rs) | - [Website & User Guide](https://actix.rs) | ||||||
| * [Examples Repository](https://github.com/actix/examples) | - [Examples Repository](https://github.com/actix/examples) | ||||||
| * [API Documentation](https://docs.rs/actix-web) | - [API Documentation](https://docs.rs/actix-web) | ||||||
| * [API Documentation (master branch)](https://actix.rs/actix-web/actix_web) | - [API Documentation (master branch)](https://actix.rs/actix-web/actix_web) | ||||||
| 
 | 
 | ||||||
| ## Example | ## Example | ||||||
| 
 | 
 | ||||||
|  | @ -71,18 +71,18 @@ async fn main() -> std::io::Result<()> { | ||||||
| 
 | 
 | ||||||
| ### More examples | ### More examples | ||||||
| 
 | 
 | ||||||
| * [Basic Setup](https://github.com/actix/examples/tree/master/basics/basics/) | - [Basic Setup](https://github.com/actix/examples/tree/master/basics/basics/) | ||||||
| * [Application State](https://github.com/actix/examples/tree/master/basics/state/) | - [Application State](https://github.com/actix/examples/tree/master/basics/state/) | ||||||
| * [JSON Handling](https://github.com/actix/examples/tree/master/json/json/) | - [JSON Handling](https://github.com/actix/examples/tree/master/json/json/) | ||||||
| * [Multipart Streams](https://github.com/actix/examples/tree/master/forms/multipart/) | - [Multipart Streams](https://github.com/actix/examples/tree/master/forms/multipart/) | ||||||
| * [Diesel Integration](https://github.com/actix/examples/tree/master/database_interactions/diesel/) | - [Diesel Integration](https://github.com/actix/examples/tree/master/database_interactions/diesel/) | ||||||
| * [r2d2 Integration](https://github.com/actix/examples/tree/master/database_interactions/r2d2/) | - [r2d2 Integration](https://github.com/actix/examples/tree/master/database_interactions/r2d2/) | ||||||
| * [Simple WebSocket](https://github.com/actix/examples/tree/master/websockets/websocket/) | - [Simple WebSocket](https://github.com/actix/examples/tree/master/websockets/websocket/) | ||||||
| * [Tera Templates](https://github.com/actix/examples/tree/master/template_engines/tera/) | - [Tera Templates](https://github.com/actix/examples/tree/master/template_engines/tera/) | ||||||
| * [Askama Templates](https://github.com/actix/examples/tree/master/template_engines/askama/) | - [Askama Templates](https://github.com/actix/examples/tree/master/template_engines/askama/) | ||||||
| * [HTTPS using Rustls](https://github.com/actix/examples/tree/master/security/rustls/) | - [HTTPS using Rustls](https://github.com/actix/examples/tree/master/security/rustls/) | ||||||
| * [HTTPS using OpenSSL](https://github.com/actix/examples/tree/master/security/openssl/) | - [HTTPS using OpenSSL](https://github.com/actix/examples/tree/master/security/openssl/) | ||||||
| * [WebSocket Chat](https://github.com/actix/examples/tree/master/websockets/chat/) | - [WebSocket Chat](https://github.com/actix/examples/tree/master/websockets/chat/) | ||||||
| 
 | 
 | ||||||
| You may consider checking out | You may consider checking out | ||||||
| [this directory](https://github.com/actix/examples/tree/master/) for more examples. | [this directory](https://github.com/actix/examples/tree/master/) for more examples. | ||||||
|  | @ -96,9 +96,9 @@ One of the fastest web frameworks available according to the | ||||||
| 
 | 
 | ||||||
| This project is licensed under either of | This project is licensed under either of | ||||||
| 
 | 
 | ||||||
| * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or | - Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or | ||||||
|   [http://www.apache.org/licenses/LICENSE-2.0]) |   [http://www.apache.org/licenses/LICENSE-2.0]) | ||||||
| * MIT license ([LICENSE-MIT](LICENSE-MIT) or | - MIT license ([LICENSE-MIT](LICENSE-MIT) or | ||||||
|   [http://opensource.org/licenses/MIT]) |   [http://opensource.org/licenses/MIT]) | ||||||
| 
 | 
 | ||||||
| at your option. | at your option. | ||||||
|  |  | ||||||
|  | @ -4,42 +4,42 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.10 - 2021-12-11 | ## 0.6.0-beta.10 - 2021-12-11 | ||||||
| * No significant changes since `0.6.0-beta.9`. | - No significant changes since `0.6.0-beta.9`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.9 - 2021-11-22 | ## 0.6.0-beta.9 - 2021-11-22 | ||||||
| * Add crate feature `experimental-io-uring`, enabling async file I/O to be utilized. This feature is only available on Linux OSes with recent kernel versions. This feature is semver-exempt. [#2408] | - Add crate feature `experimental-io-uring`, enabling async file I/O to be utilized. This feature is only available on Linux OSes with recent kernel versions. This feature is semver-exempt. [#2408] | ||||||
| * Add `NamedFile::open_async`. [#2408] | - Add `NamedFile::open_async`. [#2408] | ||||||
| * Fix 304 Not Modified responses to omit the Content-Length header, as per the spec. [#2453] | - Fix 304 Not Modified responses to omit the Content-Length header, as per the spec. [#2453] | ||||||
| * The `Responder` impl for `NamedFile` now has a boxed future associated type. [#2408] | - The `Responder` impl for `NamedFile` now has a boxed future associated type. [#2408] | ||||||
| * The `Service` impl for `NamedFileService` now has a boxed future associated type. [#2408] | - The `Service` impl for `NamedFileService` now has a boxed future associated type. [#2408] | ||||||
| * Add `impl Clone` for `FilesService`. [#2408] | - Add `impl Clone` for `FilesService`. [#2408] | ||||||
| 
 | 
 | ||||||
| [#2408]: https://github.com/actix/actix-web/pull/2408 | [#2408]: https://github.com/actix/actix-web/pull/2408 | ||||||
| [#2453]: https://github.com/actix/actix-web/pull/2453 | [#2453]: https://github.com/actix/actix-web/pull/2453 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.8 - 2021-10-20 | ## 0.6.0-beta.8 - 2021-10-20 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.7 - 2021-09-09 | ## 0.6.0-beta.7 - 2021-09-09 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.6 - 2021-06-26 | ## 0.6.0-beta.6 - 2021-06-26 | ||||||
| * Added `Files::path_filter()`. [#2274] | - Added `Files::path_filter()`. [#2274] | ||||||
| * `Files::show_files_listing()` can now be used with `Files::index_file()` to show files listing as a fallback when the index file is not found. [#2228] | - `Files::show_files_listing()` can now be used with `Files::index_file()` to show files listing as a fallback when the index file is not found. [#2228] | ||||||
| 
 | 
 | ||||||
| [#2274]: https://github.com/actix/actix-web/pull/2274 | [#2274]: https://github.com/actix/actix-web/pull/2274 | ||||||
| [#2228]: https://github.com/actix/actix-web/pull/2228 | [#2228]: https://github.com/actix/actix-web/pull/2228 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.5 - 2021-06-17 | ## 0.6.0-beta.5 - 2021-06-17 | ||||||
| * `NamedFile` now implements `ServiceFactory` and `HttpServiceFactory` making it much more useful in routing. For example, it can be used directly as a default service. [#2135] | - `NamedFile` now implements `ServiceFactory` and `HttpServiceFactory` making it much more useful in routing. For example, it can be used directly as a default service. [#2135] | ||||||
| * For symbolic links, `Content-Disposition` header no longer shows the filename of the original file. [#2156] | - For symbolic links, `Content-Disposition` header no longer shows the filename of the original file. [#2156] | ||||||
| * `Files::redirect_to_slash_directory()` now works as expected when used with `Files::show_files_listing()`. [#2225] | - `Files::redirect_to_slash_directory()` now works as expected when used with `Files::show_files_listing()`. [#2225] | ||||||
| * `application/{javascript, json, wasm}` mime type now have `inline` disposition by default. [#2257] | - `application/{javascript, json, wasm}` mime type now have `inline` disposition by default. [#2257] | ||||||
| 
 | 
 | ||||||
| [#2135]: https://github.com/actix/actix-web/pull/2135 | [#2135]: https://github.com/actix/actix-web/pull/2135 | ||||||
| [#2156]: https://github.com/actix/actix-web/pull/2156 | [#2156]: https://github.com/actix/actix-web/pull/2156 | ||||||
|  | @ -48,130 +48,130 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.4 - 2021-04-02 | ## 0.6.0-beta.4 - 2021-04-02 | ||||||
| * Add support for `.guard` in `Files` to selectively filter `Files` services. [#2046] | - Add support for `.guard` in `Files` to selectively filter `Files` services. [#2046] | ||||||
| 
 | 
 | ||||||
| [#2046]: https://github.com/actix/actix-web/pull/2046 | [#2046]: https://github.com/actix/actix-web/pull/2046 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.3 - 2021-03-09 | ## 0.6.0-beta.3 - 2021-03-09 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.2 - 2021-02-10 | ## 0.6.0-beta.2 - 2021-02-10 | ||||||
| * Fix If-Modified-Since and If-Unmodified-Since to not compare using sub-second timestamps. [#1887] | - Fix If-Modified-Since and If-Unmodified-Since to not compare using sub-second timestamps. [#1887] | ||||||
| * Replace `v_htmlescape` with `askama_escape`. [#1953] | - Replace `v_htmlescape` with `askama_escape`. [#1953] | ||||||
| 
 | 
 | ||||||
| [#1887]: https://github.com/actix/actix-web/pull/1887 | [#1887]: https://github.com/actix/actix-web/pull/1887 | ||||||
| [#1953]: https://github.com/actix/actix-web/pull/1953 | [#1953]: https://github.com/actix/actix-web/pull/1953 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.6.0-beta.1 - 2021-01-07 | ## 0.6.0-beta.1 - 2021-01-07 | ||||||
| * `HttpRange::parse` now has its own error type. | - `HttpRange::parse` now has its own error type. | ||||||
| * Update `bytes` to `1.0`. [#1813] | - Update `bytes` to `1.0`. [#1813] | ||||||
| 
 | 
 | ||||||
| [#1813]: https://github.com/actix/actix-web/pull/1813 | [#1813]: https://github.com/actix/actix-web/pull/1813 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0 - 2020-12-26 | ## 0.5.0 - 2020-12-26 | ||||||
| * Optionally support hidden files/directories. [#1811] | - Optionally support hidden files/directories. [#1811] | ||||||
| 
 | 
 | ||||||
| [#1811]: https://github.com/actix/actix-web/pull/1811 | [#1811]: https://github.com/actix/actix-web/pull/1811 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.1 - 2020-11-24 | ## 0.4.1 - 2020-11-24 | ||||||
| * Clarify order of parameters in `Files::new` and improve docs. | - Clarify order of parameters in `Files::new` and improve docs. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0 - 2020-10-06 | ## 0.4.0 - 2020-10-06 | ||||||
| * Add `Files::prefer_utf8` option that adds UTF-8 charset on certain response types. [#1714] | - Add `Files::prefer_utf8` option that adds UTF-8 charset on certain response types. [#1714] | ||||||
| 
 | 
 | ||||||
| [#1714]: https://github.com/actix/actix-web/pull/1714 | [#1714]: https://github.com/actix/actix-web/pull/1714 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0 - 2020-09-11 | ## 0.3.0 - 2020-09-11 | ||||||
| * No significant changes from 0.3.0-beta.1. | - No significant changes from 0.3.0-beta.1. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0-beta.1 - 2020-07-15 | ## 0.3.0-beta.1 - 2020-07-15 | ||||||
| * Update `v_htmlescape` to 0.10 | - Update `v_htmlescape` to 0.10 | ||||||
| * Update `actix-web` and `actix-http` dependencies to beta.1 | - Update `actix-web` and `actix-http` dependencies to beta.1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0-alpha.1 - 2020-05-23 | ## 0.3.0-alpha.1 - 2020-05-23 | ||||||
| * Update `actix-web` and `actix-http` dependencies to alpha | - Update `actix-web` and `actix-http` dependencies to alpha | ||||||
| * Fix some typos in the docs | - Fix some typos in the docs | ||||||
| * Bump minimum supported Rust version to 1.40 | - Bump minimum supported Rust version to 1.40 | ||||||
| * Support sending Content-Length when Content-Range is specified [#1384] | - Support sending Content-Length when Content-Range is specified [#1384] | ||||||
| 
 | 
 | ||||||
| [#1384]: https://github.com/actix/actix-web/pull/1384 | [#1384]: https://github.com/actix/actix-web/pull/1384 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.1 - 2019-12-22 | ## 0.2.1 - 2019-12-22 | ||||||
| * Use the same format for file URLs regardless of platforms | - Use the same format for file URLs regardless of platforms | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.0 - 2019-12-20 | ## 0.2.0 - 2019-12-20 | ||||||
| * Fix BodyEncoding trait import #1220 | - Fix BodyEncoding trait import #1220 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.0-alpha.1 - 2019-12-07 | ## 0.2.0-alpha.1 - 2019-12-07 | ||||||
| * Migrate to `std::future` | - Migrate to `std::future` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.7 - 2019-11-06 | ## 0.1.7 - 2019-11-06 | ||||||
| * Add an additional `filename*` param in the `Content-Disposition` header of | - Add an additional `filename*` param in the `Content-Disposition` header of | ||||||
|   `actix_files::NamedFile` to be more compatible. (#1151) |   `actix_files::NamedFile` to be more compatible. (#1151) | ||||||
| 
 | 
 | ||||||
| ## 0.1.6 - 2019-10-14 | ## 0.1.6 - 2019-10-14 | ||||||
| * Add option to redirect to a slash-ended path `Files` #1132 | - Add option to redirect to a slash-ended path `Files` #1132 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.5 - 2019-10-08 | ## 0.1.5 - 2019-10-08 | ||||||
| * Bump up `mime_guess` crate version to 2.0.1 | - Bump up `mime_guess` crate version to 2.0.1 | ||||||
| * Bump up `percent-encoding` crate version to 2.1 | - Bump up `percent-encoding` crate version to 2.1 | ||||||
| * Allow user defined request guards for `Files` #1113 | - Allow user defined request guards for `Files` #1113 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.4 - 2019-07-20 | ## 0.1.4 - 2019-07-20 | ||||||
| * Allow to disable `Content-Disposition` header #686 | - Allow to disable `Content-Disposition` header #686 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.3 - 2019-06-28 | ## 0.1.3 - 2019-06-28 | ||||||
| * Do not set `Content-Length` header, let actix-http set it #930 | - Do not set `Content-Length` header, let actix-http set it #930 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.2 - 2019-06-13 | ## 0.1.2 - 2019-06-13 | ||||||
| * Content-Length is 0 for NamedFile HEAD request #914 | - Content-Length is 0 for NamedFile HEAD request #914 | ||||||
| * Fix ring dependency from actix-web default features for #741 | - Fix ring dependency from actix-web default features for #741 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.1 - 2019-06-01 | ## 0.1.1 - 2019-06-01 | ||||||
| * Static files are incorrectly served as both chunked and with length #812 | - Static files are incorrectly served as both chunked and with length #812 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0 - 2019-05-25 | ## 0.1.0 - 2019-05-25 | ||||||
| * NamedFile last-modified check always fails due to nano-seconds in file modified date #820 | - NamedFile last-modified check always fails due to nano-seconds in file modified date #820 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.4 - 2019-05-12 | ## 0.1.0-beta.4 - 2019-05-12 | ||||||
| * Update actix-web to beta.4 | - Update actix-web to beta.4 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.1 - 2019-04-20 | ## 0.1.0-beta.1 - 2019-04-20 | ||||||
| * Update actix-web to beta.1 | - Update actix-web to beta.1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.6 - 2019-04-14 | ## 0.1.0-alpha.6 - 2019-04-14 | ||||||
| * Update actix-web to alpha6 | - Update actix-web to alpha6 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.4 - 2019-04-08 | ## 0.1.0-alpha.4 - 2019-04-08 | ||||||
| * Update actix-web to alpha4 | - Update actix-web to alpha4 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.2 - 2019-04-02 | ## 0.1.0-alpha.2 - 2019-04-02 | ||||||
| * Add default handler support | - Add default handler support | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.1 - 2019-03-28 | ## 0.1.0-alpha.1 - 2019-03-28 | ||||||
| * Initial impl | - Initial impl | ||||||
|  |  | ||||||
|  | @ -4,125 +4,125 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.9 - 2021-12-11 | ## 3.0.0-beta.9 - 2021-12-11 | ||||||
| * No significant changes since `3.0.0-beta.8`. | - No significant changes since `3.0.0-beta.8`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.8 - 2021-11-30 | ## 3.0.0-beta.8 - 2021-11-30 | ||||||
| * Update `actix-tls` to `3.0.0-rc.1`. [#2474] | - Update `actix-tls` to `3.0.0-rc.1`. [#2474] | ||||||
| 
 | 
 | ||||||
| [#2474]: https://github.com/actix/actix-web/pull/2474 | [#2474]: https://github.com/actix/actix-web/pull/2474 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.7 - 2021-11-22 | ## 3.0.0-beta.7 - 2021-11-22 | ||||||
| * Fix compatibility with experimental `io-uring` feature of `actix-rt`. [#2408] | - Fix compatibility with experimental `io-uring` feature of `actix-rt`. [#2408] | ||||||
| 
 | 
 | ||||||
| [#2408]: https://github.com/actix/actix-web/pull/2408 | [#2408]: https://github.com/actix/actix-web/pull/2408 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.6 - 2021-11-15 | ## 3.0.0-beta.6 - 2021-11-15 | ||||||
| * `TestServer::stop` is now async and will wait for the server and system to shutdown. [#2442] | - `TestServer::stop` is now async and will wait for the server and system to shutdown. [#2442] | ||||||
| * Update `actix-server` to `2.0.0-beta.9`. [#2442] | - Update `actix-server` to `2.0.0-beta.9`. [#2442] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| [#2442]: https://github.com/actix/actix-web/pull/2442 | [#2442]: https://github.com/actix/actix-web/pull/2442 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.5 - 2021-09-09 | ## 3.0.0-beta.5 - 2021-09-09 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.4 - 2021-04-02 | ## 3.0.0-beta.4 - 2021-04-02 | ||||||
| * Added `TestServer::client_headers` method. [#2097] | - Added `TestServer::client_headers` method. [#2097] | ||||||
| 
 | 
 | ||||||
| [#2097]: https://github.com/actix/actix-web/pull/2097 | [#2097]: https://github.com/actix/actix-web/pull/2097 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.3 - 2021-03-09 | ## 3.0.0-beta.3 - 2021-03-09 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.2 - 2021-02-10 | ## 3.0.0-beta.2 - 2021-02-10 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.1 - 2021-01-07 | ## 3.0.0-beta.1 - 2021-01-07 | ||||||
| * Update `bytes` to `1.0`. [#1813] | - Update `bytes` to `1.0`. [#1813] | ||||||
| 
 | 
 | ||||||
| [#1813]: https://github.com/actix/actix-web/pull/1813 | [#1813]: https://github.com/actix/actix-web/pull/1813 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.1.0 - 2020-11-25 | ## 2.1.0 - 2020-11-25 | ||||||
| * Add ability to set address for `TestServer`. [#1645] | - Add ability to set address for `TestServer`. [#1645] | ||||||
| * Upgrade `base64` to `0.13`. | - Upgrade `base64` to `0.13`. | ||||||
| * Upgrade `serde_urlencoded` to `0.7`. [#1773] | - Upgrade `serde_urlencoded` to `0.7`. [#1773] | ||||||
| 
 | 
 | ||||||
| [#1773]: https://github.com/actix/actix-web/pull/1773 | [#1773]: https://github.com/actix/actix-web/pull/1773 | ||||||
| [#1645]: https://github.com/actix/actix-web/pull/1645 | [#1645]: https://github.com/actix/actix-web/pull/1645 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0 - 2020-09-11 | ## 2.0.0 - 2020-09-11 | ||||||
| * Update actix-codec and actix-utils dependencies. | - Update actix-codec and actix-utils dependencies. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-alpha.1 - 2020-05-23 | ## 2.0.0-alpha.1 - 2020-05-23 | ||||||
| * Update the `time` dependency to 0.2.7 | - Update the `time` dependency to 0.2.7 | ||||||
| * Update `actix-connect` dependency to 2.0.0-alpha.2 | - Update `actix-connect` dependency to 2.0.0-alpha.2 | ||||||
| * Make `test_server` `async` fn. | - Make `test_server` `async` fn. | ||||||
| * Bump minimum supported Rust version to 1.40 | - Bump minimum supported Rust version to 1.40 | ||||||
| * Replace deprecated `net2` crate with `socket2` | - Replace deprecated `net2` crate with `socket2` | ||||||
| * Update `base64` dependency to 0.12 | - Update `base64` dependency to 0.12 | ||||||
| * Update `env_logger` dependency to 0.7 | - Update `env_logger` dependency to 0.7 | ||||||
| 
 | 
 | ||||||
| ## 1.0.0 - 2019-12-13 | ## 1.0.0 - 2019-12-13 | ||||||
| * Replaced `TestServer::start()` with `test_server()` | - Replaced `TestServer::start()` with `test_server()` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 1.0.0-alpha.3 - 2019-12-07 | ## 1.0.0-alpha.3 - 2019-12-07 | ||||||
| * Migrate to `std::future` | - Migrate to `std::future` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.5 - 2019-09-17 | ## 0.2.5 - 2019-09-17 | ||||||
| * Update serde_urlencoded to "0.6.1" | - Update serde_urlencoded to "0.6.1" | ||||||
| * Increase TestServerRuntime timeouts from 500ms to 3000ms | - Increase TestServerRuntime timeouts from 500ms to 3000ms | ||||||
| * Do not override current `System` | - Do not override current `System` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.4 - 2019-07-18 | ## 0.2.4 - 2019-07-18 | ||||||
| * Update actix-server to 0.6 | - Update actix-server to 0.6 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.3 - 2019-07-16 | ## 0.2.3 - 2019-07-16 | ||||||
| * Add `delete`, `options`, `patch` methods to `TestServerRunner` | - Add `delete`, `options`, `patch` methods to `TestServerRunner` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.2 - 2019-06-16 | ## 0.2.2 - 2019-06-16 | ||||||
| * Add .put() and .sput() methods | - Add .put() and .sput() methods | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.1 - 2019-06-05 | ## 0.2.1 - 2019-06-05 | ||||||
| * Add license files | - Add license files | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.0 - 2019-05-12 | ## 0.2.0 - 2019-05-12 | ||||||
| * Update awc and actix-http deps | - Update awc and actix-http deps | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.1 - 2019-04-24 | ## 0.1.1 - 2019-04-24 | ||||||
| * Always make new connection for http client | - Always make new connection for http client | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0 - 2019-04-16 | ## 0.1.0 - 2019-04-16 | ||||||
| * No changes | - No changes | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.3 - 2019-04-02 | ## 0.1.0-alpha.3 - 2019-04-02 | ||||||
| * Request functions accept path #743 | - Request functions accept path #743 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.2 - 2019-03-29 | ## 0.1.0-alpha.2 - 2019-03-29 | ||||||
| * Added TestServerRuntime::load_body() method | - Added TestServerRuntime::load_body() method | ||||||
| * Update actix-http and awc libraries | - Update actix-http and awc libraries | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.1 - 2019-03-28 | ## 0.1.0-alpha.1 - 2019-03-28 | ||||||
| * Initial impl | - Initial impl | ||||||
|  |  | ||||||
|  | @ -2,22 +2,22 @@ | ||||||
| 
 | 
 | ||||||
| ## Unreleased - 2021-xx-xx | ## Unreleased - 2021-xx-xx | ||||||
| ### Changes | ### Changes | ||||||
| * `HeaderMap::get_all` now returns a `std::slice::Iter`. [#2527] | - `HeaderMap::get_all` now returns a `std::slice::Iter`. [#2527] | ||||||
| 
 | 
 | ||||||
| [#2527]: https://github.com/actix/actix-web/pull/2527 | [#2527]: https://github.com/actix/actix-web/pull/2527 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.16 - 2021-12-17 | ## 3.0.0-beta.16 - 2021-12-17 | ||||||
| ### Added | ### Added | ||||||
| * New method on `MessageBody` trait, `try_into_bytes`, with default implementation, for optimizations on body types that complete in exactly one poll. Replaces `is_complete_body` and `take_complete_body`. [#2522] | - New method on `MessageBody` trait, `try_into_bytes`, with default implementation, for optimizations on body types that complete in exactly one poll. Replaces `is_complete_body` and `take_complete_body`. [#2522] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Rename trait `IntoHeaderPair => TryIntoHeaderPair`. [#2510] | - Rename trait `IntoHeaderPair => TryIntoHeaderPair`. [#2510] | ||||||
| * Rename `TryIntoHeaderPair::{try_into_header_pair => try_into_pair}`. [#2510] | - Rename `TryIntoHeaderPair::{try_into_header_pair => try_into_pair}`. [#2510] | ||||||
| * Rename trait `IntoHeaderValue => TryIntoHeaderValue`. [#2510] | - Rename trait `IntoHeaderValue => TryIntoHeaderValue`. [#2510] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `MessageBody::{is_complete_body,take_complete_body}`. [#2522] | - `MessageBody::{is_complete_body,take_complete_body}`. [#2522] | ||||||
| 
 | 
 | ||||||
| [#2510]: https://github.com/actix/actix-web/pull/2510 | [#2510]: https://github.com/actix/actix-web/pull/2510 | ||||||
| [#2522]: https://github.com/actix/actix-web/pull/2522 | [#2522]: https://github.com/actix/actix-web/pull/2522 | ||||||
|  | @ -25,43 +25,43 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.15 - 2021-12-11 | ## 3.0.0-beta.15 - 2021-12-11 | ||||||
| ### Added | ### Added | ||||||
| * Add timeout for canceling HTTP/2 server side connection handshake. Default to 5 seconds. [#2483] | - Add timeout for canceling HTTP/2 server side connection handshake. Default to 5 seconds. [#2483] | ||||||
| * HTTP/2 handshake timeout can be configured with `ServiceConfig::client_timeout`. [#2483] | - HTTP/2 handshake timeout can be configured with `ServiceConfig::client_timeout`. [#2483] | ||||||
| * `Response::map_into_boxed_body`. [#2468] | - `Response::map_into_boxed_body`. [#2468] | ||||||
| * `body::EitherBody` enum. [#2468] | - `body::EitherBody` enum. [#2468] | ||||||
| * `body::None` struct. [#2468] | - `body::None` struct. [#2468] | ||||||
| * Impl `MessageBody` for `bytestring::ByteString`. [#2468] | - Impl `MessageBody` for `bytestring::ByteString`. [#2468] | ||||||
| * `impl Clone for ws::HandshakeError`. [#2468] | - `impl Clone for ws::HandshakeError`. [#2468] | ||||||
| * `#[must_use]` for `ws::Codec` to prevent subtle bugs. [#1920] | - `#[must_use]` for `ws::Codec` to prevent subtle bugs. [#1920] | ||||||
| * `impl Default ` for `ws::Codec`. [#1920] | - `impl Default ` for `ws::Codec`. [#1920] | ||||||
| * `header::QualityItem::{max, min}`. [#2486] | - `header::QualityItem::{max, min}`. [#2486] | ||||||
| * `header::Quality::{MAX, MIN}`. [#2486] | - `header::Quality::{MAX, MIN}`. [#2486] | ||||||
| * `impl Display` for `header::Quality`. [#2486] | - `impl Display` for `header::Quality`. [#2486] | ||||||
| * Connection data set through the `on_connect_ext` callbacks is now accessible only from the new `Request::conn_data()` method. [#2491] | - Connection data set through the `on_connect_ext` callbacks is now accessible only from the new `Request::conn_data()` method. [#2491] | ||||||
| * `Request::take_conn_data()`. [#2491] | - `Request::take_conn_data()`. [#2491] | ||||||
| * `Request::take_req_data()`. [#2487] | - `Request::take_req_data()`. [#2487] | ||||||
| * `impl Clone` for `RequestHead`. [#2487] | - `impl Clone` for `RequestHead`. [#2487] | ||||||
| * New methods on `MessageBody` trait, `is_complete_body` and `take_complete_body`, both with default implementations, for optimizations on body types that are done in exactly one poll/chunk. [#2497] | - New methods on `MessageBody` trait, `is_complete_body` and `take_complete_body`, both with default implementations, for optimizations on body types that are done in exactly one poll/chunk. [#2497] | ||||||
| * New `boxed` method on `MessageBody` trait for wrapping body type. [#2520] | - New `boxed` method on `MessageBody` trait for wrapping body type. [#2520] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Rename `body::BoxBody::{from_body => new}`. [#2468] | - Rename `body::BoxBody::{from_body => new}`. [#2468] | ||||||
| * Body type for `Responses` returned from `Response::{new, ok, etc...}` is now `BoxBody`. [#2468] | - Body type for `Responses` returned from `Response::{new, ok, etc...}` is now `BoxBody`. [#2468] | ||||||
| * The `Error` associated type on `MessageBody` type now requires `impl Error` (or similar). [#2468] | - The `Error` associated type on `MessageBody` type now requires `impl Error` (or similar). [#2468] | ||||||
| * Error types using in service builders now require `Into<Response<BoxBody>>`. [#2468] | - Error types using in service builders now require `Into<Response<BoxBody>>`. [#2468] | ||||||
| * `From` implementations on error types now return a `Response<BoxBody>`. [#2468] | - `From` implementations on error types now return a `Response<BoxBody>`. [#2468] | ||||||
| * `ResponseBuilder::body(B)` now returns `Response<EitherBody<B>>`. [#2468] | - `ResponseBuilder::body(B)` now returns `Response<EitherBody<B>>`. [#2468] | ||||||
| * `ResponseBuilder::finish()` now returns `Response<EitherBody<()>>`. [#2468] | - `ResponseBuilder::finish()` now returns `Response<EitherBody<()>>`. [#2468] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `ResponseBuilder::streaming`. [#2468] | - `ResponseBuilder::streaming`. [#2468] | ||||||
| * `impl Future` for `ResponseBuilder`. [#2468] | - `impl Future` for `ResponseBuilder`. [#2468] | ||||||
| * Remove unnecessary `MessageBody` bound on types passed to `body::AnyBody::new`. [#2468] | - Remove unnecessary `MessageBody` bound on types passed to `body::AnyBody::new`. [#2468] | ||||||
| * Move `body::AnyBody` to `awc`. Replaced with `EitherBody` and `BoxBody`. [#2468] | - Move `body::AnyBody` to `awc`. Replaced with `EitherBody` and `BoxBody`. [#2468] | ||||||
| * `impl Copy` for `ws::Codec`. [#1920] | - `impl Copy` for `ws::Codec`. [#1920] | ||||||
| * `header::qitem` helper. Replaced with `header::QualityItem::max`. [#2486] | - `header::qitem` helper. Replaced with `header::QualityItem::max`. [#2486] | ||||||
| * `impl TryFrom<u16>` for `header::Quality`. [#2486] | - `impl TryFrom<u16>` for `header::Quality`. [#2486] | ||||||
| * `http` module. Most everything it contained is exported at the crate root. [#2488] | - `http` module. Most everything it contained is exported at the crate root. [#2488] | ||||||
| 
 | 
 | ||||||
| [#2483]: https://github.com/actix/actix-web/pull/2483 | [#2483]: https://github.com/actix/actix-web/pull/2483 | ||||||
| [#2468]: https://github.com/actix/actix-web/pull/2468 | [#2468]: https://github.com/actix/actix-web/pull/2468 | ||||||
|  | @ -76,10 +76,10 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.14 - 2021-11-30 | ## 3.0.0-beta.14 - 2021-11-30 | ||||||
| ### Changed | ### Changed | ||||||
| * Guarantee ordering of `header::GetAll` iterator to be same as insertion order. [#2467] | - Guarantee ordering of `header::GetAll` iterator to be same as insertion order. [#2467] | ||||||
| * Expose `header::map` module. [#2467] | - Expose `header::map` module. [#2467] | ||||||
| * Implement `ExactSizeIterator` and `FusedIterator` for all `HeaderMap` iterators. [#2470] | - Implement `ExactSizeIterator` and `FusedIterator` for all `HeaderMap` iterators. [#2470] | ||||||
| * Update `actix-tls` to `3.0.0-rc.1`. [#2474] | - Update `actix-tls` to `3.0.0-rc.1`. [#2474] | ||||||
| 
 | 
 | ||||||
| [#2467]: https://github.com/actix/actix-web/pull/2467 | [#2467]: https://github.com/actix/actix-web/pull/2467 | ||||||
| [#2470]: https://github.com/actix/actix-web/pull/2470 | [#2470]: https://github.com/actix/actix-web/pull/2470 | ||||||
|  | @ -88,24 +88,24 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.13 - 2021-11-22 | ## 3.0.0-beta.13 - 2021-11-22 | ||||||
| ### Added | ### Added | ||||||
| * `body::AnyBody::empty` for quickly creating an empty body. [#2446] | - `body::AnyBody::empty` for quickly creating an empty body. [#2446] | ||||||
| * `body::AnyBody::none` for quickly creating a "none" body. [#2456] | - `body::AnyBody::none` for quickly creating a "none" body. [#2456] | ||||||
| * `impl Clone` for `body::AnyBody<S> where S: Clone`. [#2448] | - `impl Clone` for `body::AnyBody<S> where S: Clone`. [#2448] | ||||||
| * `body::AnyBody::into_boxed` for quickly converting to a type-erased, boxed body type. [#2448] | - `body::AnyBody::into_boxed` for quickly converting to a type-erased, boxed body type. [#2448] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Rename `body::AnyBody::{Message => Body}`. [#2446] | - Rename `body::AnyBody::{Message => Body}`. [#2446] | ||||||
| * Rename `body::AnyBody::{from_message => new_boxed}`. [#2448] | - Rename `body::AnyBody::{from_message => new_boxed}`. [#2448] | ||||||
| * Rename `body::AnyBody::{from_slice => copy_from_slice}`. [#2448] | - Rename `body::AnyBody::{from_slice => copy_from_slice}`. [#2448] | ||||||
| * Rename `body::{BoxAnyBody => BoxBody}`. [#2448] | - Rename `body::{BoxAnyBody => BoxBody}`. [#2448] | ||||||
| * Change representation of `AnyBody` to include a type parameter in `Body` variant. Defaults to `BoxBody`. [#2448] | - Change representation of `AnyBody` to include a type parameter in `Body` variant. Defaults to `BoxBody`. [#2448] | ||||||
| * `Encoder::response` now returns `AnyBody<Encoder<B>>`. [#2448] | - `Encoder::response` now returns `AnyBody<Encoder<B>>`. [#2448] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `body::AnyBody::Empty`; an empty body can now only be represented as a zero-length `Bytes` variant. [#2446] | - `body::AnyBody::Empty`; an empty body can now only be represented as a zero-length `Bytes` variant. [#2446] | ||||||
| * `body::BodySize::Empty`; an empty body can now only be represented as a `Sized(0)` variant. [#2446] | - `body::BodySize::Empty`; an empty body can now only be represented as a `Sized(0)` variant. [#2446] | ||||||
| * `EncoderError::Boxed`; it is no longer required. [#2446] | - `EncoderError::Boxed`; it is no longer required. [#2446] | ||||||
| * `body::ResponseBody`; is function is replaced by the new `body::AnyBody` enum. [#2446] | - `body::ResponseBody`; is function is replaced by the new `body::AnyBody` enum. [#2446] | ||||||
| 
 | 
 | ||||||
| [#2446]: https://github.com/actix/actix-web/pull/2446 | [#2446]: https://github.com/actix/actix-web/pull/2446 | ||||||
| [#2448]: https://github.com/actix/actix-web/pull/2448 | [#2448]: https://github.com/actix/actix-web/pull/2448 | ||||||
|  | @ -114,11 +114,11 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.12 - 2021-11-15 | ## 3.0.0-beta.12 - 2021-11-15 | ||||||
| ### Changed | ### Changed | ||||||
| * Update `actix-server` to `2.0.0-beta.9`. [#2442] | - Update `actix-server` to `2.0.0-beta.9`. [#2442] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `client` module. [#2425] | - `client` module. [#2425] | ||||||
| * `trust-dns` feature. [#2425] | - `trust-dns` feature. [#2425] | ||||||
| 
 | 
 | ||||||
| [#2425]: https://github.com/actix/actix-web/pull/2425 | [#2425]: https://github.com/actix/actix-web/pull/2425 | ||||||
| [#2442]: https://github.com/actix/actix-web/pull/2442 | [#2442]: https://github.com/actix/actix-web/pull/2442 | ||||||
|  | @ -126,21 +126,21 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.11 - 2021-10-20 | ## 3.0.0-beta.11 - 2021-10-20 | ||||||
| ### Changed | ### Changed | ||||||
| * Updated rustls to v0.20. [#2414] | - Updated rustls to v0.20. [#2414] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| [#2414]: https://github.com/actix/actix-web/pull/2414 | [#2414]: https://github.com/actix/actix-web/pull/2414 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.10 - 2021-09-09 | ## 3.0.0-beta.10 - 2021-09-09 | ||||||
| ### Changed | ### Changed | ||||||
| * `ContentEncoding` is now marked `#[non_exhaustive]`. [#2377] | - `ContentEncoding` is now marked `#[non_exhaustive]`. [#2377] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Remove slice creation pointing to potential uninitialized data on h1 encoder. [#2364] | - Remove slice creation pointing to potential uninitialized data on h1 encoder. [#2364] | ||||||
| * Remove `Into<Error>` bound on `Encoder` body types. [#2375] | - Remove `Into<Error>` bound on `Encoder` body types. [#2375] | ||||||
| * Fix quality parse error in Accept-Encoding header. [#2344] | - Fix quality parse error in Accept-Encoding header. [#2344] | ||||||
| 
 | 
 | ||||||
| [#2364]: https://github.com/actix/actix-web/pull/2364 | [#2364]: https://github.com/actix/actix-web/pull/2364 | ||||||
| [#2375]: https://github.com/actix/actix-web/pull/2375 | [#2375]: https://github.com/actix/actix-web/pull/2375 | ||||||
|  | @ -150,15 +150,15 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.9 - 2021-08-09 | ## 3.0.0-beta.9 - 2021-08-09 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Potential HTTP request smuggling vulnerabilities. [RUSTSEC-2021-0081](https://github.com/rustsec/advisory-db/pull/977) | - Potential HTTP request smuggling vulnerabilities. [RUSTSEC-2021-0081](https://github.com/rustsec/advisory-db/pull/977) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.8 - 2021-06-26 | ## 3.0.0-beta.8 - 2021-06-26 | ||||||
| ### Changed | ### Changed | ||||||
| * Change compression algorithm features flags. [#2250] | - Change compression algorithm features flags. [#2250] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `downcast` and `downcast_get_type_id` macros. [#2291] | - `downcast` and `downcast_get_type_id` macros. [#2291] | ||||||
| 
 | 
 | ||||||
| [#2291]: https://github.com/actix/actix-web/pull/2291 | [#2291]: https://github.com/actix/actix-web/pull/2291 | ||||||
| [#2250]: https://github.com/actix/actix-web/pull/2250 | [#2250]: https://github.com/actix/actix-web/pull/2250 | ||||||
|  | @ -166,37 +166,37 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.7 - 2021-06-17 | ## 3.0.0-beta.7 - 2021-06-17 | ||||||
| ### Added | ### Added | ||||||
| * Alias `body::Body` as `body::AnyBody`. [#2215] | - Alias `body::Body` as `body::AnyBody`. [#2215] | ||||||
| * `BoxAnyBody`: a boxed message body with boxed errors. [#2183] | - `BoxAnyBody`: a boxed message body with boxed errors. [#2183] | ||||||
| * Re-export `http` crate's `Error` type as `error::HttpError`. [#2171] | - Re-export `http` crate's `Error` type as `error::HttpError`. [#2171] | ||||||
| * Re-export `StatusCode`, `Method`, `Version` and `Uri` at the crate root. [#2171] | - Re-export `StatusCode`, `Method`, `Version` and `Uri` at the crate root. [#2171] | ||||||
| * Re-export `ContentEncoding` and `ConnectionType` at the crate root. [#2171] | - Re-export `ContentEncoding` and `ConnectionType` at the crate root. [#2171] | ||||||
| * `Response::into_body` that consumes response and returns body type. [#2201] | - `Response::into_body` that consumes response and returns body type. [#2201] | ||||||
| * `impl Default` for `Response`. [#2201] | - `impl Default` for `Response`. [#2201] | ||||||
| * Add zstd support for `ContentEncoding`. [#2244] | - Add zstd support for `ContentEncoding`. [#2244] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * The `MessageBody` trait now has an associated `Error` type. [#2183] | - The `MessageBody` trait now has an associated `Error` type. [#2183] | ||||||
| * All error trait bounds in server service builders have changed from `Into<Error>` to `Into<Response<AnyBody>>`. [#2253] | - All error trait bounds in server service builders have changed from `Into<Error>` to `Into<Response<AnyBody>>`. [#2253] | ||||||
| * All error trait bounds in message body and stream impls changed from `Into<Error>` to `Into<Box<dyn std::error::Error>>`. [#2253] | - All error trait bounds in message body and stream impls changed from `Into<Error>` to `Into<Box<dyn std::error::Error>>`. [#2253] | ||||||
| * Places in `Response` where `ResponseBody<B>` was received or returned now simply use `B`. [#2201] | - Places in `Response` where `ResponseBody<B>` was received or returned now simply use `B`. [#2201] | ||||||
| * `header` mod is now public. [#2171] | - `header` mod is now public. [#2171] | ||||||
| * `uri` mod is now public. [#2171] | - `uri` mod is now public. [#2171] | ||||||
| * Update `language-tags` to `0.3`. | - Update `language-tags` to `0.3`. | ||||||
| * Reduce the level from `error` to `debug` for the log line that is emitted when a `500 Internal Server Error` is built using `HttpResponse::from_error`. [#2201] | - Reduce the level from `error` to `debug` for the log line that is emitted when a `500 Internal Server Error` is built using `HttpResponse::from_error`. [#2201] | ||||||
| * `ResponseBuilder::message_body` now returns a `Result`. [#2201] | - `ResponseBuilder::message_body` now returns a `Result`. [#2201] | ||||||
| * Remove `Unpin` bound on `ResponseBuilder::streaming`. [#2253] | - Remove `Unpin` bound on `ResponseBuilder::streaming`. [#2253] | ||||||
| * `HttpServer::{listen_rustls(), bind_rustls()}` now honor the ALPN protocols in the configuation parameter. [#2226] | - `HttpServer::{listen_rustls(), bind_rustls()}` now honor the ALPN protocols in the configuation parameter. [#2226] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * Stop re-exporting `http` crate's `HeaderMap` types in addition to ours. [#2171] | - Stop re-exporting `http` crate's `HeaderMap` types in addition to ours. [#2171] | ||||||
| * Down-casting for `MessageBody` types. [#2183] | - Down-casting for `MessageBody` types. [#2183] | ||||||
| * `error::Result` alias. [#2201] | - `error::Result` alias. [#2201] | ||||||
| * Error field from `Response` and `Response::error`. [#2205] | - Error field from `Response` and `Response::error`. [#2205] | ||||||
| * `impl Future` for `Response`. [#2201] | - `impl Future` for `Response`. [#2201] | ||||||
| * `Response::take_body` and old `Response::into_body` method that casted body type. [#2201] | - `Response::take_body` and old `Response::into_body` method that casted body type. [#2201] | ||||||
| * `InternalError` and all the error types it constructed. [#2215] | - `InternalError` and all the error types it constructed. [#2215] | ||||||
| * Conversion (`impl Into`) of `Response<Body>` and `ResponseBuilder` to `Error`. [#2215] | - Conversion (`impl Into`) of `Response<Body>` and `ResponseBuilder` to `Error`. [#2215] | ||||||
| 
 | 
 | ||||||
| [#2171]: https://github.com/actix/actix-web/pull/2171 | [#2171]: https://github.com/actix/actix-web/pull/2171 | ||||||
| [#2183]: https://github.com/actix/actix-web/pull/2183 | [#2183]: https://github.com/actix/actix-web/pull/2183 | ||||||
|  | @ -211,27 +211,27 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.6 - 2021-04-17 | ## 3.0.0-beta.6 - 2021-04-17 | ||||||
| ### Added | ### Added | ||||||
| * `impl<T: MessageBody> MessageBody for Pin<Box<T>>`. [#2152] | - `impl<T: MessageBody> MessageBody for Pin<Box<T>>`. [#2152] | ||||||
| * `Response::{ok, bad_request, not_found, internal_server_error}`. [#2159] | - `Response::{ok, bad_request, not_found, internal_server_error}`. [#2159] | ||||||
| * Helper `body::to_bytes` for async collecting message body into Bytes. [#2158] | - Helper `body::to_bytes` for async collecting message body into Bytes. [#2158] | ||||||
| 
 | 
 | ||||||
| ### Changes | ### Changes | ||||||
| * The type parameter of `Response` no longer has a default. [#2152] | - The type parameter of `Response` no longer has a default. [#2152] | ||||||
| * The `Message` variant of `body::Body` is now `Pin<Box<dyn MessageBody>>`. [#2152] | - The `Message` variant of `body::Body` is now `Pin<Box<dyn MessageBody>>`. [#2152] | ||||||
| * `BodyStream` and `SizedStream` are no longer restricted to Unpin types. [#2152] | - `BodyStream` and `SizedStream` are no longer restricted to Unpin types. [#2152] | ||||||
| * Error enum types are marked `#[non_exhaustive]`. [#2161] | - Error enum types are marked `#[non_exhaustive]`. [#2161] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `cookies` feature flag. [#2065] | - `cookies` feature flag. [#2065] | ||||||
| * Top-level `cookies` mod (re-export). [#2065] | - Top-level `cookies` mod (re-export). [#2065] | ||||||
| * `HttpMessage` trait loses the `cookies` and `cookie` methods. [#2065] | - `HttpMessage` trait loses the `cookies` and `cookie` methods. [#2065] | ||||||
| * `impl ResponseError for CookieParseError`. [#2065] | - `impl ResponseError for CookieParseError`. [#2065] | ||||||
| * Deprecated methods on `ResponseBuilder`: `if_true`, `if_some`. [#2148] | - Deprecated methods on `ResponseBuilder`: `if_true`, `if_some`. [#2148] | ||||||
| * `ResponseBuilder::json`. [#2148] | - `ResponseBuilder::json`. [#2148] | ||||||
| * `ResponseBuilder::{set_header, header}`. [#2148] | - `ResponseBuilder::{set_header, header}`. [#2148] | ||||||
| * `impl From<serde_json::Value> for Body`. [#2148] | - `impl From<serde_json::Value> for Body`. [#2148] | ||||||
| * `Response::build_from`. [#2159] | - `Response::build_from`. [#2159] | ||||||
| * Most of the status code builders on `Response`. [#2159] | - Most of the status code builders on `Response`. [#2159] | ||||||
| 
 | 
 | ||||||
| [#2065]: https://github.com/actix/actix-web/pull/2065 | [#2065]: https://github.com/actix/actix-web/pull/2065 | ||||||
| [#2148]: https://github.com/actix/actix-web/pull/2148 | [#2148]: https://github.com/actix/actix-web/pull/2148 | ||||||
|  | @ -243,16 +243,16 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.5 - 2021-04-02 | ## 3.0.0-beta.5 - 2021-04-02 | ||||||
| ### Added | ### Added | ||||||
| * `client::Connector::handshake_timeout` method for customizing TLS connection handshake timeout. [#2081] | - `client::Connector::handshake_timeout` method for customizing TLS connection handshake timeout. [#2081] | ||||||
| * `client::ConnectorService` as `client::Connector::finish` method's return type [#2081] | - `client::ConnectorService` as `client::Connector::finish` method's return type [#2081] | ||||||
| * `client::ConnectionIo` trait alias [#2081] | - `client::ConnectionIo` trait alias [#2081] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * `client::Connector` type now only have one generic type for `actix_service::Service`. [#2063] | - `client::Connector` type now only have one generic type for `actix_service::Service`. [#2063] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * Common typed HTTP headers were moved to actix-web. [2094] | - Common typed HTTP headers were moved to actix-web. [2094] | ||||||
| * `ResponseError` impl for `actix_utils::timeout::TimeoutError`. [#2127] | - `ResponseError` impl for `actix_utils::timeout::TimeoutError`. [#2127] | ||||||
| 
 | 
 | ||||||
| [#2063]: https://github.com/actix/actix-web/pull/2063 | [#2063]: https://github.com/actix/actix-web/pull/2063 | ||||||
| [#2081]: https://github.com/actix/actix-web/pull/2081 | [#2081]: https://github.com/actix/actix-web/pull/2081 | ||||||
|  | @ -262,13 +262,13 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.4 - 2021-03-08 | ## 3.0.0-beta.4 - 2021-03-08 | ||||||
| ### Changed | ### Changed | ||||||
| * Feature `cookies` is now optional and disabled by default. [#1981] | - Feature `cookies` is now optional and disabled by default. [#1981] | ||||||
| * `ws::hash_key` now returns array. [#2035] | - `ws::hash_key` now returns array. [#2035] | ||||||
| * `ResponseBuilder::json` now takes `impl Serialize`. [#2052] | - `ResponseBuilder::json` now takes `impl Serialize`. [#2052] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * Re-export of `futures_channel::oneshot::Canceled` is removed from `error` mod. [#1994] | - Re-export of `futures_channel::oneshot::Canceled` is removed from `error` mod. [#1994] | ||||||
| * `ResponseError` impl for `futures_channel::oneshot::Canceled` is removed. [#1994] | - `ResponseError` impl for `futures_channel::oneshot::Canceled` is removed. [#1994] | ||||||
| 
 | 
 | ||||||
| [#1981]: https://github.com/actix/actix-web/pull/1981 | [#1981]: https://github.com/actix/actix-web/pull/1981 | ||||||
| [#1994]: https://github.com/actix/actix-web/pull/1994 | [#1994]: https://github.com/actix/actix-web/pull/1994 | ||||||
|  | @ -277,48 +277,48 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.3 - 2021-02-10 | ## 3.0.0-beta.3 - 2021-02-10 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.2 - 2021-02-10 | ## 3.0.0-beta.2 - 2021-02-10 | ||||||
| ### Added | ### Added | ||||||
| * `TryIntoHeaderPair` trait that allows using typed and untyped headers in the same methods. [#1869] | - `TryIntoHeaderPair` trait that allows using typed and untyped headers in the same methods. [#1869] | ||||||
| * `ResponseBuilder::insert_header` method which allows using typed headers. [#1869] | - `ResponseBuilder::insert_header` method which allows using typed headers. [#1869] | ||||||
| * `ResponseBuilder::append_header` method which allows using typed headers. [#1869] | - `ResponseBuilder::append_header` method which allows using typed headers. [#1869] | ||||||
| * `TestRequest::insert_header` method which allows using typed headers. [#1869] | - `TestRequest::insert_header` method which allows using typed headers. [#1869] | ||||||
| * `ContentEncoding` implements all necessary header traits. [#1912] | - `ContentEncoding` implements all necessary header traits. [#1912] | ||||||
| * `HeaderMap::len_keys` has the behavior of the old `len` method. [#1964] | - `HeaderMap::len_keys` has the behavior of the old `len` method. [#1964] | ||||||
| * `HeaderMap::drain` as an efficient draining iterator. [#1964] | - `HeaderMap::drain` as an efficient draining iterator. [#1964] | ||||||
| * Implement `IntoIterator` for owned `HeaderMap`. [#1964] | - Implement `IntoIterator` for owned `HeaderMap`. [#1964] | ||||||
| * `trust-dns` optional feature to enable `trust-dns-resolver` as client dns resolver. [#1969] | - `trust-dns` optional feature to enable `trust-dns-resolver` as client dns resolver. [#1969] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * `ResponseBuilder::content_type` now takes an `impl TryIntoHeaderValue` to support using typed | - `ResponseBuilder::content_type` now takes an `impl TryIntoHeaderValue` to support using typed | ||||||
|   `mime` types. [#1894] |   `mime` types. [#1894] | ||||||
| * Renamed `TryIntoHeaderValue::{try_into => try_into_value}` to avoid ambiguity with std | - Renamed `TryIntoHeaderValue::{try_into => try_into_value}` to avoid ambiguity with std | ||||||
|   `TryInto` trait. [#1894] |   `TryInto` trait. [#1894] | ||||||
| * `Extensions::insert` returns Option of replaced item. [#1904] | - `Extensions::insert` returns Option of replaced item. [#1904] | ||||||
| * Remove `HttpResponseBuilder::json2()`. [#1903] | - Remove `HttpResponseBuilder::json2()`. [#1903] | ||||||
| * Enable `HttpResponseBuilder::json()` to receive data by value and reference. [#1903] | - Enable `HttpResponseBuilder::json()` to receive data by value and reference. [#1903] | ||||||
| * `client::error::ConnectError` Resolver variant contains `Box<dyn std::error::Error>` type. [#1905] | - `client::error::ConnectError` Resolver variant contains `Box<dyn std::error::Error>` type. [#1905] | ||||||
| * `client::ConnectorConfig` default timeout changed to 5 seconds. [#1905] | - `client::ConnectorConfig` default timeout changed to 5 seconds. [#1905] | ||||||
| * Simplify `BlockingError` type to a unit struct. It's now only triggered when blocking thread pool | - Simplify `BlockingError` type to a unit struct. It's now only triggered when blocking thread pool | ||||||
|   is dead. [#1957] |   is dead. [#1957] | ||||||
| * `HeaderMap::len` now returns number of values instead of number of keys. [#1964] | - `HeaderMap::len` now returns number of values instead of number of keys. [#1964] | ||||||
| * `HeaderMap::insert` now returns iterator of removed values. [#1964] | - `HeaderMap::insert` now returns iterator of removed values. [#1964] | ||||||
| * `HeaderMap::remove` now returns iterator of removed values. [#1964] | - `HeaderMap::remove` now returns iterator of removed values. [#1964] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `ResponseBuilder::set`; use `ResponseBuilder::insert_header`. [#1869] | - `ResponseBuilder::set`; use `ResponseBuilder::insert_header`. [#1869] | ||||||
| * `ResponseBuilder::set_header`; use `ResponseBuilder::insert_header`. [#1869] | - `ResponseBuilder::set_header`; use `ResponseBuilder::insert_header`. [#1869] | ||||||
| * `ResponseBuilder::header`; use `ResponseBuilder::append_header`. [#1869] | - `ResponseBuilder::header`; use `ResponseBuilder::append_header`. [#1869] | ||||||
| * `TestRequest::with_hdr`; use `TestRequest::default().insert_header()`. [#1869] | - `TestRequest::with_hdr`; use `TestRequest::default().insert_header()`. [#1869] | ||||||
| * `TestRequest::with_header`; use `TestRequest::default().insert_header()`. [#1869] | - `TestRequest::with_header`; use `TestRequest::default().insert_header()`. [#1869] | ||||||
| * `actors` optional feature. [#1969] | - `actors` optional feature. [#1969] | ||||||
| * `ResponseError` impl for `actix::MailboxError`. [#1969] | - `ResponseError` impl for `actix::MailboxError`. [#1969] | ||||||
| 
 | 
 | ||||||
| ### Documentation | ### Documentation | ||||||
| * Vastly improve docs and add examples for `HeaderMap`. [#1964] | - Vastly improve docs and add examples for `HeaderMap`. [#1964] | ||||||
| 
 | 
 | ||||||
| [#1869]: https://github.com/actix/actix-web/pull/1869 | [#1869]: https://github.com/actix/actix-web/pull/1869 | ||||||
| [#1894]: https://github.com/actix/actix-web/pull/1894 | [#1894]: https://github.com/actix/actix-web/pull/1894 | ||||||
|  | @ -333,24 +333,24 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.1 - 2021-01-07 | ## 3.0.0-beta.1 - 2021-01-07 | ||||||
| ### Added | ### Added | ||||||
| * Add `Http3` to `Protocol` enum for future compatibility and also mark `#[non_exhaustive]`. | - Add `Http3` to `Protocol` enum for future compatibility and also mark `#[non_exhaustive]`. | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Update `actix-*` dependencies to tokio `1.0` based versions. [#1813] | - Update `actix-*` dependencies to tokio `1.0` based versions. [#1813] | ||||||
| * Bumped `rand` to `0.8`. | - Bumped `rand` to `0.8`. | ||||||
| * Update `bytes` to `1.0`. [#1813] | - Update `bytes` to `1.0`. [#1813] | ||||||
| * Update `h2` to `0.3`. [#1813] | - Update `h2` to `0.3`. [#1813] | ||||||
| * The `ws::Message::Text` enum variant now contains a `bytestring::ByteString`. [#1864] | - The `ws::Message::Text` enum variant now contains a `bytestring::ByteString`. [#1864] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * Deprecated `on_connect` methods have been removed. Prefer the new | - Deprecated `on_connect` methods have been removed. Prefer the new | ||||||
|   `on_connect_ext` technique. [#1857] |   `on_connect_ext` technique. [#1857] | ||||||
| * Remove `ResponseError` impl for `actix::actors::resolver::ResolverError` | - Remove `ResponseError` impl for `actix::actors::resolver::ResolverError` | ||||||
|   due to deprecate of resolver actor. [#1813] |   due to deprecate of resolver actor. [#1813] | ||||||
| * Remove `ConnectError::SslHandshakeError` and re-export of `HandshakeError`. | - Remove `ConnectError::SslHandshakeError` and re-export of `HandshakeError`. | ||||||
|   due to the removal of this type from `tokio-openssl` crate. openssl handshake  |   due to the removal of this type from `tokio-openssl` crate. openssl handshake  | ||||||
|   error would return as `ConnectError::SslError`. [#1813] |   error would return as `ConnectError::SslError`. [#1813] | ||||||
| * Remove `actix-threadpool` dependency. Use `actix_rt::task::spawn_blocking`. | - Remove `actix-threadpool` dependency. Use `actix_rt::task::spawn_blocking`. | ||||||
|   Due to this change `actix_threadpool::BlockingError` type is moved into  |   Due to this change `actix_threadpool::BlockingError` type is moved into  | ||||||
|   `actix_http::error` module. [#1878] |   `actix_http::error` module. [#1878] | ||||||
| 
 | 
 | ||||||
|  | @ -362,20 +362,20 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.2.1 - 2021-08-09 | ## 2.2.1 - 2021-08-09 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Potential HTTP request smuggling vulnerabilities. [RUSTSEC-2021-0081](https://github.com/rustsec/advisory-db/pull/977) | - Potential HTTP request smuggling vulnerabilities. [RUSTSEC-2021-0081](https://github.com/rustsec/advisory-db/pull/977) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.2.0 - 2020-11-25 | ## 2.2.0 - 2020-11-25 | ||||||
| ### Added | ### Added | ||||||
| * HttpResponse builders for 1xx status codes. [#1768] | - HttpResponse builders for 1xx status codes. [#1768] | ||||||
| * `Accept::mime_precedence` and `Accept::mime_preference`. [#1793] | - `Accept::mime_precedence` and `Accept::mime_preference`. [#1793] | ||||||
| * `TryFrom<u16>` and `TryFrom<f32>` for `http::header::Quality`. [#1797] | - `TryFrom<u16>` and `TryFrom<f32>` for `http::header::Quality`. [#1797] | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Started dropping `transfer-encoding: chunked` and `Content-Length` for 1XX and 204 responses. [#1767] | - Started dropping `transfer-encoding: chunked` and `Content-Length` for 1XX and 204 responses. [#1767] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Upgrade `serde_urlencoded` to `0.7`. [#1773] | - Upgrade `serde_urlencoded` to `0.7`. [#1773] | ||||||
| 
 | 
 | ||||||
| [#1773]: https://github.com/actix/actix-web/pull/1773 | [#1773]: https://github.com/actix/actix-web/pull/1773 | ||||||
| [#1767]: https://github.com/actix/actix-web/pull/1767 | [#1767]: https://github.com/actix/actix-web/pull/1767 | ||||||
|  | @ -386,12 +386,12 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.1.0 - 2020-10-30 | ## 2.1.0 - 2020-10-30 | ||||||
| ### Added | ### Added | ||||||
| * Added more flexible `on_connect_ext` methods for on-connect handling. [#1754] | - Added more flexible `on_connect_ext` methods for on-connect handling. [#1754] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Upgrade `base64` to `0.13`. [#1744] | - Upgrade `base64` to `0.13`. [#1744] | ||||||
| * Upgrade `pin-project` to `1.0`. [#1733] | - Upgrade `pin-project` to `1.0`. [#1733] | ||||||
| * Deprecate `ResponseBuilder::{if_some, if_true}`. [#1760] | - Deprecate `ResponseBuilder::{if_some, if_true}`. [#1760] | ||||||
| 
 | 
 | ||||||
| [#1760]: https://github.com/actix/actix-web/pull/1760 | [#1760]: https://github.com/actix/actix-web/pull/1760 | ||||||
| [#1754]: https://github.com/actix/actix-web/pull/1754 | [#1754]: https://github.com/actix/actix-web/pull/1754 | ||||||
|  | @ -400,28 +400,28 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0 - 2020-09-11 | ## 2.0.0 - 2020-09-11 | ||||||
| * No significant changes from `2.0.0-beta.4`. | - No significant changes from `2.0.0-beta.4`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-beta.4 - 2020-09-09 | ## 2.0.0-beta.4 - 2020-09-09 | ||||||
| ### Changed | ### Changed | ||||||
| * Update actix-codec and actix-utils dependencies. | - Update actix-codec and actix-utils dependencies. | ||||||
| * Update actix-connect and actix-tls dependencies. | - Update actix-connect and actix-tls dependencies. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-beta.3 - 2020-08-14 | ## 2.0.0-beta.3 - 2020-08-14 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Memory leak of `client::pool::ConnectorPoolSupport`. [#1626] | - Memory leak of `client::pool::ConnectorPoolSupport`. [#1626] | ||||||
| 
 | 
 | ||||||
| [#1626]: https://github.com/actix/actix-web/pull/1626 | [#1626]: https://github.com/actix/actix-web/pull/1626 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-beta.2 - 2020-07-21 | ## 2.0.0-beta.2 - 2020-07-21 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Potential UB in h1 decoder using uninitialized memory. [#1614] | - Potential UB in h1 decoder using uninitialized memory. [#1614] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Fix illegal chunked encoding. [#1615] | - Fix illegal chunked encoding. [#1615] | ||||||
| 
 | 
 | ||||||
| [#1614]: https://github.com/actix/actix-web/pull/1614 | [#1614]: https://github.com/actix/actix-web/pull/1614 | ||||||
| [#1615]: https://github.com/actix/actix-web/pull/1615 | [#1615]: https://github.com/actix/actix-web/pull/1615 | ||||||
|  | @ -429,10 +429,10 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-beta.1 - 2020-07-11 | ## 2.0.0-beta.1 - 2020-07-11 | ||||||
| ### Changed | ### Changed | ||||||
| * Migrate cookie handling to `cookie` crate. [#1558] | - Migrate cookie handling to `cookie` crate. [#1558] | ||||||
| * Update `sha-1` to 0.9. [#1586] | - Update `sha-1` to 0.9. [#1586] | ||||||
| * Fix leak in client pool. [#1580] | - Fix leak in client pool. [#1580] | ||||||
| * MSRV is now 1.41.1. | - MSRV is now 1.41.1. | ||||||
| 
 | 
 | ||||||
| [#1558]: https://github.com/actix/actix-web/pull/1558 | [#1558]: https://github.com/actix/actix-web/pull/1558 | ||||||
| [#1586]: https://github.com/actix/actix-web/pull/1586 | [#1586]: https://github.com/actix/actix-web/pull/1586 | ||||||
|  | @ -441,15 +441,15 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-alpha.4 - 2020-05-21 | ## 2.0.0-alpha.4 - 2020-05-21 | ||||||
| ### Changed | ### Changed | ||||||
| * Bump minimum supported Rust version to 1.40 | - Bump minimum supported Rust version to 1.40 | ||||||
| * content_length function is removed, and you can set Content-Length by calling | - content_length function is removed, and you can set Content-Length by calling | ||||||
|   no_chunking function [#1439] |   no_chunking function [#1439] | ||||||
| * `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a | - `BodySize::Sized64` variant has been removed. `BodySize::Sized` now receives a | ||||||
|   `u64` instead of a `usize`. |   `u64` instead of a `usize`. | ||||||
| * Update `base64` dependency to 0.12 | - Update `base64` dependency to 0.12 | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Support parsing of `SameSite=None` [#1503] | - Support parsing of `SameSite=None` [#1503] | ||||||
| 
 | 
 | ||||||
| [#1439]: https://github.com/actix/actix-web/pull/1439 | [#1439]: https://github.com/actix/actix-web/pull/1439 | ||||||
| [#1503]: https://github.com/actix/actix-web/pull/1503 | [#1503]: https://github.com/actix/actix-web/pull/1503 | ||||||
|  | @ -457,13 +457,13 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-alpha.3 - 2020-05-08 | ## 2.0.0-alpha.3 - 2020-05-08 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Correct spelling of ConnectError::Unresolved [#1487] | - Correct spelling of ConnectError::Unresolved [#1487] | ||||||
| * Fix a mistake in the encoding of websocket continuation messages wherein | - Fix a mistake in the encoding of websocket continuation messages wherein | ||||||
|   Item::FirstText and Item::FirstBinary are each encoded as the other. |   Item::FirstText and Item::FirstBinary are each encoded as the other. | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Implement `std::error::Error` for our custom errors [#1422] | - Implement `std::error::Error` for our custom errors [#1422] | ||||||
| * Remove `failure` support for `ResponseError` since that crate | - Remove `failure` support for `ResponseError` since that crate | ||||||
|   will be deprecated in the near future. |   will be deprecated in the near future. | ||||||
| 
 | 
 | ||||||
| [#1422]: https://github.com/actix/actix-web/pull/1422 | [#1422]: https://github.com/actix/actix-web/pull/1422 | ||||||
|  | @ -472,12 +472,12 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-alpha.2 - 2020-03-07 | ## 2.0.0-alpha.2 - 2020-03-07 | ||||||
| ### Changed | ### Changed | ||||||
| * Update `actix-connect` and `actix-tls` dependency to 2.0.0-alpha.1. [#1395] | - Update `actix-connect` and `actix-tls` dependency to 2.0.0-alpha.1. [#1395] | ||||||
| * Change default initial window size and connection window size for HTTP2 to 2MB and 1MB | - Change default initial window size and connection window size for HTTP2 to 2MB and 1MB | ||||||
|   respectively to improve download speed for awc when downloading large objects. [#1394] |   respectively to improve download speed for awc when downloading large objects. [#1394] | ||||||
| * client::Connector accepts initial_window_size and initial_connection_window_size | - client::Connector accepts initial_window_size and initial_connection_window_size | ||||||
|   HTTP2 configuration. [#1394] |   HTTP2 configuration. [#1394] | ||||||
| * client::Connector allowing to set max_http_version to limit HTTP version to be used. [#1394] | - client::Connector allowing to set max_http_version to limit HTTP version to be used. [#1394] | ||||||
| 
 | 
 | ||||||
| [#1394]: https://github.com/actix/actix-web/pull/1394 | [#1394]: https://github.com/actix/actix-web/pull/1394 | ||||||
| [#1395]: https://github.com/actix/actix-web/pull/1395 | [#1395]: https://github.com/actix/actix-web/pull/1395 | ||||||
|  | @ -485,61 +485,61 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-alpha.1 - 2020-02-27 | ## 2.0.0-alpha.1 - 2020-02-27 | ||||||
| ### Changed | ### Changed | ||||||
| * Update the `time` dependency to 0.2.7. | - Update the `time` dependency to 0.2.7. | ||||||
| * Moved actors messages support from actix crate, enabled with feature `actors`. | - Moved actors messages support from actix crate, enabled with feature `actors`. | ||||||
| * Breaking change: trait MessageBody requires Unpin and accepting `Pin<&mut Self>` instead of | - Breaking change: trait MessageBody requires Unpin and accepting `Pin<&mut Self>` instead of | ||||||
|   `&mut self` in the poll_next(). |   `&mut self` in the poll_next(). | ||||||
| * MessageBody is not implemented for &'static [u8] anymore. | - MessageBody is not implemented for &'static [u8] anymore. | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Allow `SameSite=None` cookies to be sent in a response. | - Allow `SameSite=None` cookies to be sent in a response. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 1.0.1 - 2019-12-20 | ## 1.0.1 - 2019-12-20 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Poll upgrade service's readiness from HTTP service handlers | - Poll upgrade service's readiness from HTTP service handlers | ||||||
| * Replace brotli with brotli2 #1224 | - Replace brotli with brotli2 #1224 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 1.0.0 - 2019-12-13 | ## 1.0.0 - 2019-12-13 | ||||||
| ### Added | ### Added | ||||||
| * Add websockets continuation frame support | - Add websockets continuation frame support | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Replace `flate2-xxx` features with `compress` | - Replace `flate2-xxx` features with `compress` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 1.0.0-alpha.5 - 2019-12-09 | ## 1.0.0-alpha.5 - 2019-12-09 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Check `Upgrade` service readiness before calling it | - Check `Upgrade` service readiness before calling it | ||||||
| * Fix buffer remaining capacity calculation | - Fix buffer remaining capacity calculation | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Websockets: Ping and Pong should have binary data #1049 | - Websockets: Ping and Pong should have binary data #1049 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 1.0.0-alpha.4 - 2019-12-08 | ## 1.0.0-alpha.4 - 2019-12-08 | ||||||
| ### Added | ### Added | ||||||
| * Add impl ResponseBuilder for Error | - Add impl ResponseBuilder for Error | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Use rust based brotli compression library | - Use rust based brotli compression library | ||||||
| 
 | 
 | ||||||
| ## 1.0.0-alpha.3 - 2019-12-07 | ## 1.0.0-alpha.3 - 2019-12-07 | ||||||
| ### Changed | ### Changed | ||||||
| * Migrate to tokio 0.2 | - Migrate to tokio 0.2 | ||||||
| * Migrate to `std::future` | - Migrate to `std::future` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.11 - 2019-11-06 | ## 0.2.11 - 2019-11-06 | ||||||
| ### Added | ### Added | ||||||
| * Add support for serde_json::Value to be passed as argument to ResponseBuilder.body() | - Add support for serde_json::Value to be passed as argument to ResponseBuilder.body() | ||||||
| * Add an additional `filename*` param in the `Content-Disposition` header of | - Add an additional `filename*` param in the `Content-Disposition` header of | ||||||
|   `actix_files::NamedFile` to be more compatible. (#1151) |   `actix_files::NamedFile` to be more compatible. (#1151) | ||||||
| * Allow to use `std::convert::Infallible` as `actix_http::error::Error` | - Allow to use `std::convert::Infallible` as `actix_http::error::Error` | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * To be compatible with non-English error responses, `ResponseError` rendered with `text/plain; | - To be compatible with non-English error responses, `ResponseError` rendered with `text/plain; | ||||||
|   charset=utf-8` header [#1118] |   charset=utf-8` header [#1118] | ||||||
| 
 | 
 | ||||||
| [#1878]: https://github.com/actix/actix-web/pull/1878 | [#1878]: https://github.com/actix/actix-web/pull/1878 | ||||||
|  | @ -547,169 +547,169 @@ | ||||||
| 
 | 
 | ||||||
| ## 0.2.10 - 2019-09-11 | ## 0.2.10 - 2019-09-11 | ||||||
| ### Added | ### Added | ||||||
| * Add support for sending HTTP requests with `Rc<RequestHead>` in addition to sending HTTP requests | - Add support for sending HTTP requests with `Rc<RequestHead>` in addition to sending HTTP requests | ||||||
|   with `RequestHead` |   with `RequestHead` | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * h2 will use error response #1080 | - h2 will use error response #1080 | ||||||
| * on_connect result isn't added to request extensions for http2 requests #1009 | - on_connect result isn't added to request extensions for http2 requests #1009 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.9 - 2019-08-13 | ## 0.2.9 - 2019-08-13 | ||||||
| ### Changed | ### Changed | ||||||
| * Dropped the `byteorder`-dependency in favor of `stdlib`-implementation | - Dropped the `byteorder`-dependency in favor of `stdlib`-implementation | ||||||
| * Update percent-encoding to 2.1 | - Update percent-encoding to 2.1 | ||||||
| * Update serde_urlencoded to 0.6.1 | - Update serde_urlencoded to 0.6.1 | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Fixed a panic in the HTTP2 handshake in client HTTP requests (#1031) | - Fixed a panic in the HTTP2 handshake in client HTTP requests (#1031) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.8 - 2019-08-01 | ## 0.2.8 - 2019-08-01 | ||||||
| ### Added | ### Added | ||||||
| * Add `rustls` support | - Add `rustls` support | ||||||
| * Add `Clone` impl for `HeaderMap` | - Add `Clone` impl for `HeaderMap` | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * awc client panic #1016 | - awc client panic #1016 | ||||||
| * Invalid response with compression middleware enabled, but compression-related features | - Invalid response with compression middleware enabled, but compression-related features | ||||||
|   disabled #997 |   disabled #997 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.7 - 2019-07-18 | ## 0.2.7 - 2019-07-18 | ||||||
| ### Added | ### Added | ||||||
| * Add support for downcasting response errors #986 | - Add support for downcasting response errors #986 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.6 - 2019-07-17 | ## 0.2.6 - 2019-07-17 | ||||||
| ### Changed | ### Changed | ||||||
| * Replace `ClonableService` with local copy | - Replace `ClonableService` with local copy | ||||||
| * Upgrade `rand` dependency version to 0.7 | - Upgrade `rand` dependency version to 0.7 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.5 - 2019-06-28 | ## 0.2.5 - 2019-06-28 | ||||||
| ### Added | ### Added | ||||||
| * Add `on-connect` callback, `HttpServiceBuilder::on_connect()` #946 | - Add `on-connect` callback, `HttpServiceBuilder::on_connect()` #946 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Use `encoding_rs` crate instead of unmaintained `encoding` crate | - Use `encoding_rs` crate instead of unmaintained `encoding` crate | ||||||
| * Add `Copy` and `Clone` impls for `ws::Codec` | - Add `Copy` and `Clone` impls for `ws::Codec` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.4 - 2019-06-16 | ## 0.2.4 - 2019-06-16 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Do not compress NoContent (204) responses #918 | - Do not compress NoContent (204) responses #918 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.3 - 2019-06-02 | ## 0.2.3 - 2019-06-02 | ||||||
| ### Added | ### Added | ||||||
| * Debug impl for ResponseBuilder | - Debug impl for ResponseBuilder | ||||||
| * From SizedStream and BodyStream for Body | - From SizedStream and BodyStream for Body | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * SizedStream uses u64 | - SizedStream uses u64 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.2 - 2019-05-29 | ## 0.2.2 - 2019-05-29 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Parse incoming stream before closing stream on disconnect #868 | - Parse incoming stream before closing stream on disconnect #868 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.1 - 2019-05-25 | ## 0.2.1 - 2019-05-25 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Handle socket read disconnect | - Handle socket read disconnect | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.0 - 2019-05-12 | ## 0.2.0 - 2019-05-12 | ||||||
| ### Changed | ### Changed | ||||||
| * Update actix-service to 0.4 | - Update actix-service to 0.4 | ||||||
| * Expect and upgrade services accept `ServerConfig` config. | - Expect and upgrade services accept `ServerConfig` config. | ||||||
| 
 | 
 | ||||||
| ### Deleted | ### Deleted | ||||||
| * `OneRequest` service | - `OneRequest` service | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.5 - 2019-05-04 | ## 0.1.5 - 2019-05-04 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Clean up response extensions in response pool #817 | - Clean up response extensions in response pool #817 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.4 - 2019-04-24 | ## 0.1.4 - 2019-04-24 | ||||||
| ### Added | ### Added | ||||||
| * Allow to render h1 request headers in `Camel-Case` | - Allow to render h1 request headers in `Camel-Case` | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Read until eof for http/1.0 responses #771 | - Read until eof for http/1.0 responses #771 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.3 - 2019-04-23 | ## 0.1.3 - 2019-04-23 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Fix http client pool management | - Fix http client pool management | ||||||
| * Fix http client wait queue management #794 | - Fix http client wait queue management #794 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.2 - 2019-04-23 | ## 0.1.2 - 2019-04-23 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Fix BorrowMutError panic in client connector #793 | - Fix BorrowMutError panic in client connector #793 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.1 - 2019-04-19 | ## 0.1.1 - 2019-04-19 | ||||||
| ### Changed | ### Changed | ||||||
| * Cookie::max_age() accepts value in seconds | - Cookie::max_age() accepts value in seconds | ||||||
| * Cookie::max_age_time() accepts value in time::Duration | - Cookie::max_age_time() accepts value in time::Duration | ||||||
| * Allow to specify server address for client connector | - Allow to specify server address for client connector | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0 - 2019-04-16 | ## 0.1.0 - 2019-04-16 | ||||||
| ### Added | ### Added | ||||||
| * Expose peer addr via `Request::peer_addr()` and `RequestHead::peer_addr` | - Expose peer addr via `Request::peer_addr()` and `RequestHead::peer_addr` | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * `actix_http::encoding` always available | - `actix_http::encoding` always available | ||||||
| * use trust-dns-resolver 0.11.0 | - use trust-dns-resolver 0.11.0 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.5 - 2019-04-12 | ## 0.1.0-alpha.5 - 2019-04-12 | ||||||
| ### Added | ### Added | ||||||
| * Allow to use custom service for upgrade requests | - Allow to use custom service for upgrade requests | ||||||
| * Added `h1::SendResponse` future. | - Added `h1::SendResponse` future. | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * MessageBody::length() renamed to MessageBody::size() for consistency | - MessageBody::length() renamed to MessageBody::size() for consistency | ||||||
| * ws handshake verification functions take RequestHead instead of Request | - ws handshake verification functions take RequestHead instead of Request | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.4 - 2019-04-08 | ## 0.1.0-alpha.4 - 2019-04-08 | ||||||
| ### Added | ### Added | ||||||
| * Allow to use custom `Expect` handler | - Allow to use custom `Expect` handler | ||||||
| * Add minimal `std::error::Error` impl for `Error` | - Add minimal `std::error::Error` impl for `Error` | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Export IntoHeaderValue | - Export IntoHeaderValue | ||||||
| * Render error and return as response body | - Render error and return as response body | ||||||
| * Use thread pool for response body compression | - Use thread pool for response body compression | ||||||
| 
 | 
 | ||||||
| ### Deleted | ### Deleted | ||||||
| * Removed PayloadBuffer | - Removed PayloadBuffer | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.3 - 2019-04-02 | ## 0.1.0-alpha.3 - 2019-04-02 | ||||||
| ### Added | ### Added | ||||||
| * Warn when an unsealed private cookie isn't valid UTF-8 | - Warn when an unsealed private cookie isn't valid UTF-8 | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Rust 1.31.0 compatibility | - Rust 1.31.0 compatibility | ||||||
| * Preallocate read buffer for h1 codec | - Preallocate read buffer for h1 codec | ||||||
| * Detect socket disconnection during protocol selection | - Detect socket disconnection during protocol selection | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.2 - 2019-03-29 | ## 0.1.0-alpha.2 - 2019-03-29 | ||||||
| ### Added | ### Added | ||||||
| * Added ws::Message::Nop, no-op websockets message | - Added ws::Message::Nop, no-op websockets message | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Do not use thread pool for decompression if chunk size is smaller than 2048. | - Do not use thread pool for decompression if chunk size is smaller than 2048. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.1 - 2019-03-28 | ## 0.1.0-alpha.1 - 2019-03-28 | ||||||
| * Initial impl | - Initial impl | ||||||
|  |  | ||||||
|  | @ -54,8 +54,8 @@ async fn main() -> io::Result<()> { | ||||||
| 
 | 
 | ||||||
| This project is licensed under either of | This project is licensed under either of | ||||||
| 
 | 
 | ||||||
| * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) | - Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)) | ||||||
| * MIT license ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) | - MIT license ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT)) | ||||||
| 
 | 
 | ||||||
| at your option. | at your option. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,119 +4,119 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.10 - 2021-12-11 | ## 0.4.0-beta.10 - 2021-12-11 | ||||||
| * No significant changes since `0.4.0-beta.9`. | - No significant changes since `0.4.0-beta.9`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.9 - 2021-12-01 | ## 0.4.0-beta.9 - 2021-12-01 | ||||||
| * Polling `Field` after dropping `Multipart` now fails immediately instead of hanging forever. [#2463] | - Polling `Field` after dropping `Multipart` now fails immediately instead of hanging forever. [#2463] | ||||||
| 
 | 
 | ||||||
| [#2463]: https://github.com/actix/actix-web/pull/2463 | [#2463]: https://github.com/actix/actix-web/pull/2463 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.8 - 2021-11-22 | ## 0.4.0-beta.8 - 2021-11-22 | ||||||
| * Ensure a correct Content-Disposition header is included in every part of a multipart message. [#2451] | - Ensure a correct Content-Disposition header is included in every part of a multipart message. [#2451] | ||||||
| * Added `MultipartError::NoContentDisposition` variant. [#2451] | - Added `MultipartError::NoContentDisposition` variant. [#2451] | ||||||
| * Since Content-Disposition is now ensured, `Field::content_disposition` is now infallible. [#2451] | - Since Content-Disposition is now ensured, `Field::content_disposition` is now infallible. [#2451] | ||||||
| * Added `Field::name` method for getting the field name. [#2451] | - Added `Field::name` method for getting the field name. [#2451] | ||||||
| * `MultipartError` now marks variants with inner errors as the source. [#2451] | - `MultipartError` now marks variants with inner errors as the source. [#2451] | ||||||
| * `MultipartError` is now marked as non-exhaustive. [#2451] | - `MultipartError` is now marked as non-exhaustive. [#2451] | ||||||
| 
 | 
 | ||||||
| [#2451]: https://github.com/actix/actix-web/pull/2451 | [#2451]: https://github.com/actix/actix-web/pull/2451 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.7 - 2021-10-20 | ## 0.4.0-beta.7 - 2021-10-20 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.6 - 2021-09-09 | ## 0.4.0-beta.6 - 2021-09-09 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.5 - 2021-06-17 | ## 0.4.0-beta.5 - 2021-06-17 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.4 - 2021-04-02 | ## 0.4.0-beta.4 - 2021-04-02 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.3 - 2021-03-09 | ## 0.4.0-beta.3 - 2021-03-09 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.2 - 2021-02-10 | ## 0.4.0-beta.2 - 2021-02-10 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0-beta.1 - 2021-01-07 | ## 0.4.0-beta.1 - 2021-01-07 | ||||||
| * Fix multipart consuming payload before header checks. [#1513] | - Fix multipart consuming payload before header checks. [#1513] | ||||||
| * Update `bytes` to `1.0`. [#1813] | - Update `bytes` to `1.0`. [#1813] | ||||||
| 
 | 
 | ||||||
| [#1813]: https://github.com/actix/actix-web/pull/1813 | [#1813]: https://github.com/actix/actix-web/pull/1813 | ||||||
| [#1513]: https://github.com/actix/actix-web/pull/1513 | [#1513]: https://github.com/actix/actix-web/pull/1513 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0 - 2020-09-11 | ## 0.3.0 - 2020-09-11 | ||||||
| * No significant changes from `0.3.0-beta.2`. | - No significant changes from `0.3.0-beta.2`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0-beta.2 - 2020-09-10 | ## 0.3.0-beta.2 - 2020-09-10 | ||||||
| * Update `actix-*` dependencies to latest versions. | - Update `actix-*` dependencies to latest versions. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0-beta.1 - 2020-07-15 | ## 0.3.0-beta.1 - 2020-07-15 | ||||||
| * Update `actix-web` to 3.0.0-beta.1 | - Update `actix-web` to 3.0.0-beta.1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0-alpha.1 - 2020-05-25 | ## 0.3.0-alpha.1 - 2020-05-25 | ||||||
| * Update `actix-web` to 3.0.0-alpha.3 | - Update `actix-web` to 3.0.0-alpha.3 | ||||||
| * Bump minimum supported Rust version to 1.40 | - Bump minimum supported Rust version to 1.40 | ||||||
| * Minimize `futures` dependencies | - Minimize `futures` dependencies | ||||||
| * Remove the unused `time` dependency | - Remove the unused `time` dependency | ||||||
| * Fix missing `std::error::Error` implement for `MultipartError`. | - Fix missing `std::error::Error` implement for `MultipartError`. | ||||||
| 
 | 
 | ||||||
| ## [0.2.0] - 2019-12-20 | ## [0.2.0] - 2019-12-20 | ||||||
| 
 | 
 | ||||||
| * Release | - Release | ||||||
| 
 | 
 | ||||||
| ## [0.2.0-alpha.4] - 2019-12-xx | ## [0.2.0-alpha.4] - 2019-12-xx | ||||||
| 
 | 
 | ||||||
| * Multipart handling now handles Pending during read of boundary #1205 | - Multipart handling now handles Pending during read of boundary #1205 | ||||||
| 
 | 
 | ||||||
| ## [0.2.0-alpha.2] - 2019-12-03 | ## [0.2.0-alpha.2] - 2019-12-03 | ||||||
| 
 | 
 | ||||||
| * Migrate to `std::future` | - Migrate to `std::future` | ||||||
| 
 | 
 | ||||||
| ## [0.1.4] - 2019-09-12 | ## [0.1.4] - 2019-09-12 | ||||||
| 
 | 
 | ||||||
| * Multipart handling now parses requests which do not end in CRLF #1038 | - Multipart handling now parses requests which do not end in CRLF #1038 | ||||||
| 
 | 
 | ||||||
| ## [0.1.3] - 2019-08-18 | ## [0.1.3] - 2019-08-18 | ||||||
| 
 | 
 | ||||||
| * Fix ring dependency from actix-web default features for #741. | - Fix ring dependency from actix-web default features for #741. | ||||||
| 
 | 
 | ||||||
| ## [0.1.2] - 2019-06-02 | ## [0.1.2] - 2019-06-02 | ||||||
| 
 | 
 | ||||||
| * Fix boundary parsing #876 | - Fix boundary parsing #876 | ||||||
| 
 | 
 | ||||||
| ## [0.1.1] - 2019-05-25 | ## [0.1.1] - 2019-05-25 | ||||||
| 
 | 
 | ||||||
| * Fix disconnect handling #834 | - Fix disconnect handling #834 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0] - 2019-05-18 | ## [0.1.0] - 2019-05-18 | ||||||
| 
 | 
 | ||||||
| * Release | - Release | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-beta.4] - 2019-05-12 | ## [0.1.0-beta.4] - 2019-05-12 | ||||||
| 
 | 
 | ||||||
| * Handle cancellation of uploads #736 | - Handle cancellation of uploads #736 | ||||||
| 
 | 
 | ||||||
| * Upgrade to actix-web 1.0.0-beta.4 | - Upgrade to actix-web 1.0.0-beta.4 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-beta.1] - 2019-04-21 | ## [0.1.0-beta.1] - 2019-04-21 | ||||||
| 
 | 
 | ||||||
| * Do not support nested multipart | - Do not support nested multipart | ||||||
| 
 | 
 | ||||||
| * Split multipart support to separate crate | - Split multipart support to separate crate | ||||||
| 
 | 
 | ||||||
| * Optimize multipart handling #634, #769 | - Optimize multipart handling #634, #769 | ||||||
|  |  | ||||||
|  | @ -4,20 +4,20 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.3 - 2021-12-17 | ## 0.5.0-beta.3 - 2021-12-17 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.2 - 2021-09-09 | ## 0.5.0-beta.2 - 2021-09-09 | ||||||
| * Introduce `ResourceDef::join`. [#380] | - Introduce `ResourceDef::join`. [#380] | ||||||
| * Disallow prefix routes with tail segments. [#379] | - Disallow prefix routes with tail segments. [#379] | ||||||
| * Enforce path separators on dynamic prefixes. [#378] | - Enforce path separators on dynamic prefixes. [#378] | ||||||
| * Improve malformed path error message. [#384] | - Improve malformed path error message. [#384] | ||||||
| * Prefix segments now always end with with a segment delimiter or end-of-input. [#2355] | - Prefix segments now always end with with a segment delimiter or end-of-input. [#2355] | ||||||
| * Prefix segments with trailing slashes define a trailing empty segment. [#2355] | - Prefix segments with trailing slashes define a trailing empty segment. [#2355] | ||||||
| * Support multi-pattern prefixes and joins. [#2356] | - Support multi-pattern prefixes and joins. [#2356] | ||||||
| * `ResourceDef::pattern` now returns the first pattern in multi-pattern resources. [#2356] | - `ResourceDef::pattern` now returns the first pattern in multi-pattern resources. [#2356] | ||||||
| * Support `build_resource_path` on multi-pattern resources. [#2356] | - Support `build_resource_path` on multi-pattern resources. [#2356] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| [#378]: https://github.com/actix/actix-net/pull/378 | [#378]: https://github.com/actix/actix-net/pull/378 | ||||||
| [#379]: https://github.com/actix/actix-net/pull/379 | [#379]: https://github.com/actix/actix-net/pull/379 | ||||||
|  | @ -28,23 +28,23 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.1 - 2021-07-20 | ## 0.5.0-beta.1 - 2021-07-20 | ||||||
| * Fix a bug in multi-patterns where static patterns are interpreted as regex. [#366] | - Fix a bug in multi-patterns where static patterns are interpreted as regex. [#366] | ||||||
| * Introduce `ResourceDef::pattern_iter` to get an iterator over all patterns in a multi-pattern resource. [#373] | - Introduce `ResourceDef::pattern_iter` to get an iterator over all patterns in a multi-pattern resource. [#373] | ||||||
| * Fix segment interpolation leaving `Path` in unintended state after matching. [#368] | - Fix segment interpolation leaving `Path` in unintended state after matching. [#368] | ||||||
| * Fix `ResourceDef` `PartialEq` implementation. [#373] | - Fix `ResourceDef` `PartialEq` implementation. [#373] | ||||||
| * Re-work `IntoPatterns` trait, adding a `Patterns` enum. [#372] | - Re-work `IntoPatterns` trait, adding a `Patterns` enum. [#372] | ||||||
| * Implement `IntoPatterns` for `bytestring::ByteString`. [#372] | - Implement `IntoPatterns` for `bytestring::ByteString`. [#372] | ||||||
| * Rename `Path::{len => segment_count}` to be more descriptive of it's purpose. [#370] | - Rename `Path::{len => segment_count}` to be more descriptive of it's purpose. [#370] | ||||||
| * Rename `ResourceDef::{resource_path => resource_path_from_iter}`. [#371] | - Rename `ResourceDef::{resource_path => resource_path_from_iter}`. [#371] | ||||||
| * `ResourceDef::resource_path_from_iter` now takes an `IntoIterator`. [#373] | - `ResourceDef::resource_path_from_iter` now takes an `IntoIterator`. [#373] | ||||||
| * Rename `ResourceDef::{resource_path_named => resource_path_from_map}`. [#371] | - Rename `ResourceDef::{resource_path_named => resource_path_from_map}`. [#371] | ||||||
| * Rename `ResourceDef::{is_prefix_match => find_match}`. [#373] | - Rename `ResourceDef::{is_prefix_match => find_match}`. [#373] | ||||||
| * Rename `ResourceDef::{match_path => capture_match_info}`. [#373] | - Rename `ResourceDef::{match_path => capture_match_info}`. [#373] | ||||||
| * Rename `ResourceDef::{match_path_checked => capture_match_info_fn}`. [#373] | - Rename `ResourceDef::{match_path_checked => capture_match_info_fn}`. [#373] | ||||||
| * Remove `ResourceDef::name_mut` and introduce `ResourceDef::set_name`. [#373] | - Remove `ResourceDef::name_mut` and introduce `ResourceDef::set_name`. [#373] | ||||||
| * Rename `Router::{*_checked => *_fn}`. [#373] | - Rename `Router::{*_checked => *_fn}`. [#373] | ||||||
| * Return type of `ResourceDef::name` is now `Option<&str>`. [#373] | - Return type of `ResourceDef::name` is now `Option<&str>`. [#373] | ||||||
| * Return type of `ResourceDef::pattern` is now `Option<&str>`. [#373] | - Return type of `ResourceDef::pattern` is now `Option<&str>`. [#373] | ||||||
| 
 | 
 | ||||||
| [#368]: https://github.com/actix/actix-net/pull/368 | [#368]: https://github.com/actix/actix-net/pull/368 | ||||||
| [#366]: https://github.com/actix/actix-net/pull/366 | [#366]: https://github.com/actix/actix-net/pull/366 | ||||||
|  | @ -56,10 +56,10 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0 - 2021-06-06 | ## 0.4.0 - 2021-06-06 | ||||||
| * When matching path parameters, `%25` is now kept in the percent-encoded form; no longer decoded to `%`. [#357] | - When matching path parameters, `%25` is now kept in the percent-encoded form; no longer decoded to `%`. [#357] | ||||||
| * Path tail patterns now match new lines (`\n`) in request URL. [#360] | - Path tail patterns now match new lines (`\n`) in request URL. [#360] | ||||||
| * Fixed a safety bug where `Path` could return a malformed string after percent decoding. [#359] | - Fixed a safety bug where `Path` could return a malformed string after percent decoding. [#359] | ||||||
| * Methods `Path::{add, add_static}` now take `impl Into<Cow<'static, str>>`. [#345] | - Methods `Path::{add, add_static}` now take `impl Into<Cow<'static, str>>`. [#345] | ||||||
| 
 | 
 | ||||||
| [#345]: https://github.com/actix/actix-net/pull/345 | [#345]: https://github.com/actix/actix-net/pull/345 | ||||||
| [#357]: https://github.com/actix/actix-net/pull/357 | [#357]: https://github.com/actix/actix-net/pull/357 | ||||||
|  | @ -68,68 +68,68 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0 - 2019-12-31 | ## 0.3.0 - 2019-12-31 | ||||||
| * Version was yanked previously. See https://crates.io/crates/actix-router/0.3.0 | - Version was yanked previously. See https://crates.io/crates/actix-router/0.3.0 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.7 - 2021-02-06 | ## 0.2.7 - 2021-02-06 | ||||||
| * Add `Router::recognize_checked` [#247] | - Add `Router::recognize_checked` [#247] | ||||||
| 
 | 
 | ||||||
| [#247]: https://github.com/actix/actix-net/pull/247 | [#247]: https://github.com/actix/actix-net/pull/247 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.6 - 2021-01-09 | ## 0.2.6 - 2021-01-09 | ||||||
| * Use `bytestring` version range compatible with Bytes v1.0. [#246] | - Use `bytestring` version range compatible with Bytes v1.0. [#246] | ||||||
| 
 | 
 | ||||||
| [#246]: https://github.com/actix/actix-net/pull/246 | [#246]: https://github.com/actix/actix-net/pull/246 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.5 - 2020-09-20 | ## 0.2.5 - 2020-09-20 | ||||||
| * Fix `from_hex()` method | - Fix `from_hex()` method | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.4 - 2019-12-31 | ## 0.2.4 - 2019-12-31 | ||||||
| * Add `ResourceDef::resource_path_named()` path generation method | - Add `ResourceDef::resource_path_named()` path generation method | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.3 - 2019-12-25 | ## 0.2.3 - 2019-12-25 | ||||||
| * Add impl `IntoPattern` for `&String` | - Add impl `IntoPattern` for `&String` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.2 - 2019-12-25 | ## 0.2.2 - 2019-12-25 | ||||||
| * Use `IntoPattern` for `RouterBuilder::path()` | - Use `IntoPattern` for `RouterBuilder::path()` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.1 - 2019-12-25 | ## 0.2.1 - 2019-12-25 | ||||||
| * Add `IntoPattern` trait | - Add `IntoPattern` trait | ||||||
| * Add multi-pattern resources | - Add multi-pattern resources | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.0 - 2019-12-07 | ## 0.2.0 - 2019-12-07 | ||||||
| * Update http to 0.2 | - Update http to 0.2 | ||||||
| * Update regex to 1.3 | - Update regex to 1.3 | ||||||
| * Use bytestring instead of string | - Use bytestring instead of string | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.5 - 2019-05-15 | ## 0.1.5 - 2019-05-15 | ||||||
| * Remove debug prints | - Remove debug prints | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.4 - 2019-05-15 | ## 0.1.4 - 2019-05-15 | ||||||
| * Fix checked resource match | - Fix checked resource match | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.3 - 2019-04-22 | ## 0.1.3 - 2019-04-22 | ||||||
| * Added support for `remainder match` (i.e "/path/{tail}*") | - Added support for `remainder match` (i.e "/path/{tail}*") | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.2 - 2019-04-07 | ## 0.1.2 - 2019-04-07 | ||||||
| * Export `Quoter` type | - Export `Quoter` type | ||||||
| * Allow to reset `Path` instance | - Allow to reset `Path` instance | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.1 - 2019-04-03 | ## 0.1.1 - 2019-04-03 | ||||||
| * Get dynamic segment by name instead of iterator. | - Get dynamic segment by name instead of iterator. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0 - 2019-03-09 | ## 0.1.0 - 2019-03-09 | ||||||
| * Initial release | - Initial release | ||||||
|  |  | ||||||
|  | @ -4,46 +4,46 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.9 - 2021-12-17 | ## 0.1.0-beta.9 - 2021-12-17 | ||||||
| * Re-export `actix_http::body::to_bytes`. [#2518] | - Re-export `actix_http::body::to_bytes`. [#2518] | ||||||
| * Update `actix_web::test` re-exports. [#2518] | - Update `actix_web::test` re-exports. [#2518] | ||||||
| 
 | 
 | ||||||
| [#2518]: https://github.com/actix/actix-web/pull/2518 | [#2518]: https://github.com/actix/actix-web/pull/2518 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.8 - 2021-12-11 | ## 0.1.0-beta.8 - 2021-12-11 | ||||||
| * No significant changes since `0.1.0-beta.7`. | - No significant changes since `0.1.0-beta.7`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.7 - 2021-11-22 | ## 0.1.0-beta.7 - 2021-11-22 | ||||||
| * Fix compatibility with experimental `io-uring` feature of `actix-rt`. [#2408] | - Fix compatibility with experimental `io-uring` feature of `actix-rt`. [#2408] | ||||||
| 
 | 
 | ||||||
| [#2408]: https://github.com/actix/actix-web/pull/2408 | [#2408]: https://github.com/actix/actix-web/pull/2408 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.6 - 2021-11-15 | ## 0.1.0-beta.6 - 2021-11-15 | ||||||
| * No significant changes from `0.1.0-beta.5`. | - No significant changes from `0.1.0-beta.5`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.5 - 2021-10-20 | ## 0.1.0-beta.5 - 2021-10-20 | ||||||
| * Updated rustls to v0.20. [#2414] | - Updated rustls to v0.20. [#2414] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| [#2414]: https://github.com/actix/actix-web/pull/2414 | [#2414]: https://github.com/actix/actix-web/pull/2414 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.4 - 2021-09-09 | ## 0.1.0-beta.4 - 2021-09-09 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.3 - 2021-06-20 | ## 0.1.0-beta.3 - 2021-06-20 | ||||||
| * No significant changes from `0.1.0-beta.2`. | - No significant changes from `0.1.0-beta.2`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.2 - 2021-04-17 | ## 0.1.0-beta.2 - 2021-04-17 | ||||||
| * No significant changes from `0.1.0-beta.1`. | - No significant changes from `0.1.0-beta.1`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.1 - 2021-04-02 | ## 0.1.0-beta.1 - 2021-04-02 | ||||||
| * Move integration testing structs from `actix-web`. [#2112] | - Move integration testing structs from `actix-web`. [#2112] | ||||||
| 
 | 
 | ||||||
| [#2112]: https://github.com/actix/actix-web/pull/2112 | [#2112]: https://github.com/actix/actix-web/pull/2112 | ||||||
|  |  | ||||||
|  | @ -4,105 +4,105 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.8 - 2021-12-11 | ## 4.0.0-beta.8 - 2021-12-11 | ||||||
| * Add `ws:WsResponseBuilder` for building WebSocket session response. [#1920] | - Add `ws:WsResponseBuilder` for building WebSocket session response. [#1920] | ||||||
| * Deprecate `ws::{start_with_addr, start_with_protocols}`. [#1920] | - Deprecate `ws::{start_with_addr, start_with_protocols}`. [#1920] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| [#1920]: https://github.com/actix/actix-web/pull/1920 | [#1920]: https://github.com/actix/actix-web/pull/1920 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.7 - 2021-09-09 | ## 4.0.0-beta.7 - 2021-09-09 | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.6 - 2021-06-26 | ## 4.0.0-beta.6 - 2021-06-26 | ||||||
| * Update `actix` to `0.12`. [#2277] | - Update `actix` to `0.12`. [#2277] | ||||||
| 
 | 
 | ||||||
| [#2277]: https://github.com/actix/actix-web/pull/2277 | [#2277]: https://github.com/actix/actix-web/pull/2277 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.5 - 2021-06-17 | ## 4.0.0-beta.5 - 2021-06-17 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.4 - 2021-04-02 | ## 4.0.0-beta.4 - 2021-04-02 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.3 - 2021-03-09 | ## 4.0.0-beta.3 - 2021-03-09 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.2 - 2021-02-10 | ## 4.0.0-beta.2 - 2021-02-10 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 4.0.0-beta.1 - 2021-01-07 | ## 4.0.0-beta.1 - 2021-01-07 | ||||||
| * Update `pin-project` to `1.0`. | - Update `pin-project` to `1.0`. | ||||||
| * Update `bytes` to `1.0`. [#1813] | - Update `bytes` to `1.0`. [#1813] | ||||||
| * `WebsocketContext::text` now takes an `Into<bytestring::ByteString>`. [#1864] | - `WebsocketContext::text` now takes an `Into<bytestring::ByteString>`. [#1864] | ||||||
| 
 | 
 | ||||||
| [#1813]: https://github.com/actix/actix-web/pull/1813 | [#1813]: https://github.com/actix/actix-web/pull/1813 | ||||||
| [#1864]: https://github.com/actix/actix-web/pull/1864 | [#1864]: https://github.com/actix/actix-web/pull/1864 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0 - 2020-09-11 | ## 3.0.0 - 2020-09-11 | ||||||
| * No significant changes from `3.0.0-beta.2`. | - No significant changes from `3.0.0-beta.2`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.2 - 2020-09-10 | ## 3.0.0-beta.2 - 2020-09-10 | ||||||
| * Update `actix-*` dependencies to latest versions. | - Update `actix-*` dependencies to latest versions. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [3.0.0-beta.1] - 2020-xx-xx | ## [3.0.0-beta.1] - 2020-xx-xx | ||||||
| * Update `actix-web` & `actix-http` dependencies to beta.1 | - Update `actix-web` & `actix-http` dependencies to beta.1 | ||||||
| * Bump minimum supported Rust version to 1.40 | - Bump minimum supported Rust version to 1.40 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [3.0.0-alpha.1] - 2020-05-08 | ## [3.0.0-alpha.1] - 2020-05-08 | ||||||
| * Update the actix-web dependency to 3.0.0-alpha.1 | - Update the actix-web dependency to 3.0.0-alpha.1 | ||||||
| * Update the actix dependency to 0.10.0-alpha.2 | - Update the actix dependency to 0.10.0-alpha.2 | ||||||
| * Update the actix-http dependency to 2.0.0-alpha.3 | - Update the actix-http dependency to 2.0.0-alpha.3 | ||||||
| 
 | 
 | ||||||
| ## [2.0.0] - 2019-12-20 | ## [2.0.0] - 2019-12-20 | ||||||
| 
 | 
 | ||||||
| * Release | - Release | ||||||
| 
 | 
 | ||||||
| ## [2.0.0-alpha.1] - 2019-12-15 | ## [2.0.0-alpha.1] - 2019-12-15 | ||||||
| 
 | 
 | ||||||
| * Migrate to actix-web 2.0.0 | - Migrate to actix-web 2.0.0 | ||||||
| 
 | 
 | ||||||
| ## [1.0.4] - 2019-12-07 | ## [1.0.4] - 2019-12-07 | ||||||
| 
 | 
 | ||||||
| * Allow comma-separated websocket subprotocols without spaces (#1172) | - Allow comma-separated websocket subprotocols without spaces (#1172) | ||||||
| 
 | 
 | ||||||
| ## [1.0.3] - 2019-11-14 | ## [1.0.3] - 2019-11-14 | ||||||
| 
 | 
 | ||||||
| * Update actix-web and actix-http dependencies | - Update actix-web and actix-http dependencies | ||||||
| 
 | 
 | ||||||
| ## [1.0.2] - 2019-07-20 | ## [1.0.2] - 2019-07-20 | ||||||
| 
 | 
 | ||||||
| * Add `ws::start_with_addr()`, returning the address of the created actor, along | - Add `ws::start_with_addr()`, returning the address of the created actor, along | ||||||
|   with the `HttpResponse`. |   with the `HttpResponse`. | ||||||
| 
 | 
 | ||||||
| * Add support for specifying protocols on websocket handshake #835 | - Add support for specifying protocols on websocket handshake #835 | ||||||
| 
 | 
 | ||||||
| ## [1.0.1] - 2019-06-28 | ## [1.0.1] - 2019-06-28 | ||||||
| 
 | 
 | ||||||
| * Allow to use custom ws codec with `WebsocketContext` #925 | - Allow to use custom ws codec with `WebsocketContext` #925 | ||||||
| 
 | 
 | ||||||
| ## [1.0.0] - 2019-05-29 | ## [1.0.0] - 2019-05-29 | ||||||
| 
 | 
 | ||||||
| * Update actix-http and actix-web | - Update actix-http and actix-web | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.3] - 2019-04-02 | ## [0.1.0-alpha.3] - 2019-04-02 | ||||||
| 
 | 
 | ||||||
| * Update actix-http and actix-web | - Update actix-http and actix-web | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.2] - 2019-03-29 | ## [0.1.0-alpha.2] - 2019-03-29 | ||||||
| 
 | 
 | ||||||
| * Update actix-http and actix-web | - Update actix-http and actix-web | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.1] - 2019-03-28 | ## [0.1.0-alpha.1] - 2019-03-28 | ||||||
| 
 | 
 | ||||||
| * Initial impl | - Initial impl | ||||||
|  |  | ||||||
|  | @ -4,101 +4,101 @@ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.6 - 2021-12-11 | ## 0.5.0-beta.6 - 2021-12-11 | ||||||
| * No significant changes since `0.5.0-beta.5`. | - No significant changes since `0.5.0-beta.5`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.5 - 2021-10-20 | ## 0.5.0-beta.5 - 2021-10-20 | ||||||
| * Improve error recovery potential when macro input is invalid. [#2410] | - Improve error recovery potential when macro input is invalid. [#2410] | ||||||
| * Add `#[actix_web::test]` macro for setting up tests with a runtime. [#2409] | - Add `#[actix_web::test]` macro for setting up tests with a runtime. [#2409] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.52. | - Minimum supported Rust version (MSRV) is now 1.52. | ||||||
| 
 | 
 | ||||||
| [#2410]: https://github.com/actix/actix-web/pull/2410 | [#2410]: https://github.com/actix/actix-web/pull/2410 | ||||||
| [#2409]: https://github.com/actix/actix-web/pull/2409 | [#2409]: https://github.com/actix/actix-web/pull/2409 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.4 - 2021-09-09 | ## 0.5.0-beta.4 - 2021-09-09 | ||||||
| * In routing macros, paths are now validated at compile time. [#2350] | - In routing macros, paths are now validated at compile time. [#2350] | ||||||
| * Minimum supported Rust version (MSRV) is now 1.51. | - Minimum supported Rust version (MSRV) is now 1.51. | ||||||
| 
 | 
 | ||||||
| [#2350]: https://github.com/actix/actix-web/pull/2350 | [#2350]: https://github.com/actix/actix-web/pull/2350 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.3 - 2021-06-17 | ## 0.5.0-beta.3 - 2021-06-17 | ||||||
| * No notable changes. | - No notable changes. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.2 - 2021-03-09 | ## 0.5.0-beta.2 - 2021-03-09 | ||||||
| * Preserve doc comments when using route macros. [#2022] | - Preserve doc comments when using route macros. [#2022] | ||||||
| * Add `name` attribute to `route` macro. [#1934] | - Add `name` attribute to `route` macro. [#1934] | ||||||
| 
 | 
 | ||||||
| [#2022]: https://github.com/actix/actix-web/pull/2022 | [#2022]: https://github.com/actix/actix-web/pull/2022 | ||||||
| [#1934]: https://github.com/actix/actix-web/pull/1934 | [#1934]: https://github.com/actix/actix-web/pull/1934 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.5.0-beta.1 - 2021-02-10 | ## 0.5.0-beta.1 - 2021-02-10 | ||||||
| * Use new call signature for `System::new`. | - Use new call signature for `System::new`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.4.0 - 2020-09-20 | ## 0.4.0 - 2020-09-20 | ||||||
| * Added compile success and failure testing. [#1677] | - Added compile success and failure testing. [#1677] | ||||||
| * Add `route` macro for supporting multiple HTTP methods guards. [#1674] | - Add `route` macro for supporting multiple HTTP methods guards. [#1674] | ||||||
| 
 | 
 | ||||||
| [#1677]: https://github.com/actix/actix-web/pull/1677 | [#1677]: https://github.com/actix/actix-web/pull/1677 | ||||||
| [#1674]: https://github.com/actix/actix-web/pull/1674 | [#1674]: https://github.com/actix/actix-web/pull/1674 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0 - 2020-09-11 | ## 0.3.0 - 2020-09-11 | ||||||
| * No significant changes from `0.3.0-beta.1`. | - No significant changes from `0.3.0-beta.1`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.3.0-beta.1 - 2020-07-14 | ## 0.3.0-beta.1 - 2020-07-14 | ||||||
| * Add main entry-point macro that uses re-exported runtime. [#1559] | - Add main entry-point macro that uses re-exported runtime. [#1559] | ||||||
| 
 | 
 | ||||||
| [#1559]: https://github.com/actix/actix-web/pull/1559 | [#1559]: https://github.com/actix/actix-web/pull/1559 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.2 - 2020-05-23 | ## 0.2.2 - 2020-05-23 | ||||||
| * Add resource middleware on actix-web-codegen [#1467] | - Add resource middleware on actix-web-codegen [#1467] | ||||||
| 
 | 
 | ||||||
| [#1467]: https://github.com/actix/actix-web/pull/1467 | [#1467]: https://github.com/actix/actix-web/pull/1467 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.1 - 2020-02-25 | ## 0.2.1 - 2020-02-25 | ||||||
| * Add `#[allow(missing_docs)]` attribute to generated structs [#1368] | - Add `#[allow(missing_docs)]` attribute to generated structs [#1368] | ||||||
| * Allow the handler function to be named as `config` [#1290] | - Allow the handler function to be named as `config` [#1290] | ||||||
| 
 | 
 | ||||||
| [#1368]: https://github.com/actix/actix-web/issues/1368 | [#1368]: https://github.com/actix/actix-web/issues/1368 | ||||||
| [#1290]: https://github.com/actix/actix-web/issues/1290 | [#1290]: https://github.com/actix/actix-web/issues/1290 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.2.0 - 2019-12-13 | ## 0.2.0 - 2019-12-13 | ||||||
| * Generate code for actix-web 2.0 | - Generate code for actix-web 2.0 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.3 - 2019-10-14 | ## 0.1.3 - 2019-10-14 | ||||||
| * Bump up `syn` & `quote` to 1.0 | - Bump up `syn` & `quote` to 1.0 | ||||||
| * Provide better error message | - Provide better error message | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.2 - 2019-06-04 | ## 0.1.2 - 2019-06-04 | ||||||
| * Add macros for head, options, trace, connect and patch http methods | - Add macros for head, options, trace, connect and patch http methods | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.1 - 2019-06-01 | ## 0.1.1 - 2019-06-01 | ||||||
| * Add syn "extra-traits" feature | - Add syn "extra-traits" feature | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0 - 2019-05-18 | ## 0.1.0 - 2019-05-18 | ||||||
| * Release | - Release | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-beta.1 - 2019-04-20 | ## 0.1.0-beta.1 - 2019-04-20 | ||||||
| * Gen code for actix-web 1.0.0-beta.1 | - Gen code for actix-web 1.0.0-beta.1 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.6 - 2019-04-14 | ## 0.1.0-alpha.6 - 2019-04-14 | ||||||
| * Gen code for actix-web 1.0.0-alpha.6 | - Gen code for actix-web 1.0.0-alpha.6 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 0.1.0-alpha.1 - 2019-03-28 | ## 0.1.0-alpha.1 - 2019-03-28 | ||||||
| * Initial impl | - Initial impl | ||||||
|  |  | ||||||
							
								
								
									
										170
									
								
								awc/CHANGES.md
								
								
								
								
							
							
						
						
									
										170
									
								
								awc/CHANGES.md
								
								
								
								
							|  | @ -1,75 +1,75 @@ | ||||||
| # Changes | # Changes | ||||||
| 
 | 
 | ||||||
| ## Unreleased - 2021-xx-xx | ## Unreleased - 2021-xx-xx | ||||||
| * Rename `Connector::{ssl => openssl}`. [#2503] | - Rename `Connector::{ssl => openssl}`. [#2503] | ||||||
| * Improve `Client` instantiation efficiency when using `openssl` by only building connectors once. [#2503] | - Improve `Client` instantiation efficiency when using `openssl` by only building connectors once. [#2503] | ||||||
| 
 | 
 | ||||||
| [#2503]: https://github.com/actix/actix-web/pull/2503 | [#2503]: https://github.com/actix/actix-web/pull/2503 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.14 - 2021-12-17 | ## 3.0.0-beta.14 - 2021-12-17 | ||||||
| * Add `ClientBuilder::add_default_header` and deprecate `ClientBuilder::header`. [#2510] | - Add `ClientBuilder::add_default_header` and deprecate `ClientBuilder::header`. [#2510] | ||||||
| 
 | 
 | ||||||
| [#2510]: https://github.com/actix/actix-web/pull/2510 | [#2510]: https://github.com/actix/actix-web/pull/2510 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.13 - 2021-12-11 | ## 3.0.0-beta.13 - 2021-12-11 | ||||||
| * No significant changes since `3.0.0-beta.12`. | - No significant changes since `3.0.0-beta.12`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.12 - 2021-11-30 | ## 3.0.0-beta.12 - 2021-11-30 | ||||||
| * Update `actix-tls` to `3.0.0-rc.1`. [#2474] | - Update `actix-tls` to `3.0.0-rc.1`. [#2474] | ||||||
| 
 | 
 | ||||||
| [#2474]: https://github.com/actix/actix-web/pull/2474 | [#2474]: https://github.com/actix/actix-web/pull/2474 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.11 - 2021-11-22 | ## 3.0.0-beta.11 - 2021-11-22 | ||||||
| * No significant changes from `3.0.0-beta.10`. | - No significant changes from `3.0.0-beta.10`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.10 - 2021-11-15 | ## 3.0.0-beta.10 - 2021-11-15 | ||||||
| * No significant changes from `3.0.0-beta.9`. | - No significant changes from `3.0.0-beta.9`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.9 - 2021-10-20 | ## 3.0.0-beta.9 - 2021-10-20 | ||||||
| * Updated rustls to v0.20. [#2414] | - Updated rustls to v0.20. [#2414] | ||||||
| 
 | 
 | ||||||
| [#2414]: https://github.com/actix/actix-web/pull/2414 | [#2414]: https://github.com/actix/actix-web/pull/2414 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.8 - 2021-09-09 | ## 3.0.0-beta.8 - 2021-09-09 | ||||||
| ### Changed | ### Changed | ||||||
| * Send headers within the redirect requests. [#2310] | - Send headers within the redirect requests. [#2310] | ||||||
| 
 | 
 | ||||||
| [#2310]: https://github.com/actix/actix-web/pull/2310 | [#2310]: https://github.com/actix/actix-web/pull/2310 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.7 - 2021-06-26 | ## 3.0.0-beta.7 - 2021-06-26 | ||||||
| ### Changed | ### Changed | ||||||
| * Change compression algorithm features flags. [#2250] | - Change compression algorithm features flags. [#2250] | ||||||
| 
 | 
 | ||||||
| [#2250]: https://github.com/actix/actix-web/pull/2250 | [#2250]: https://github.com/actix/actix-web/pull/2250 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.6 - 2021-06-17 | ## 3.0.0-beta.6 - 2021-06-17 | ||||||
| * No significant changes since 3.0.0-beta.5. | - No significant changes since 3.0.0-beta.5. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.5 - 2021-04-17 | ## 3.0.0-beta.5 - 2021-04-17 | ||||||
| ### Removed | ### Removed | ||||||
| * Deprecated methods on `ClientRequest`: `if_true`, `if_some`. [#2148] | - Deprecated methods on `ClientRequest`: `if_true`, `if_some`. [#2148] | ||||||
| 
 | 
 | ||||||
| [#2148]: https://github.com/actix/actix-web/pull/2148 | [#2148]: https://github.com/actix/actix-web/pull/2148 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.4 - 2021-04-02 | ## 3.0.0-beta.4 - 2021-04-02 | ||||||
| ### Added | ### Added | ||||||
| * Add `Client::headers` to get default mut reference of `HeaderMap` of client object. [#2114] | - Add `Client::headers` to get default mut reference of `HeaderMap` of client object. [#2114] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * `ConnectorService` type is renamed to `BoxConnectorService`. [#2081] | - `ConnectorService` type is renamed to `BoxConnectorService`. [#2081] | ||||||
| * Fix http/https encoding when enabling `compress` feature. [#2116] | - Fix http/https encoding when enabling `compress` feature. [#2116] | ||||||
| * Rename `TestResponse::header` to `append_header`, `set` to `insert_header`. `TestResponse` header | - Rename `TestResponse::header` to `append_header`, `set` to `insert_header`. `TestResponse` header | ||||||
|   methods now take `TryIntoHeaderPair` tuples. [#2094] |   methods now take `TryIntoHeaderPair` tuples. [#2094] | ||||||
| 
 | 
 | ||||||
| [#2081]: https://github.com/actix/actix-web/pull/2081 | [#2081]: https://github.com/actix/actix-web/pull/2081 | ||||||
|  | @ -80,16 +80,16 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.3 - 2021-03-08 | ## 3.0.0-beta.3 - 2021-03-08 | ||||||
| ### Added | ### Added | ||||||
| * `ClientResponse::timeout` for set the timeout of collecting response body. [#1931] | - `ClientResponse::timeout` for set the timeout of collecting response body. [#1931] | ||||||
| * `ClientBuilder::local_address` for bind to a local ip address for this client. [#2024] | - `ClientBuilder::local_address` for bind to a local ip address for this client. [#2024] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Feature `cookies` is now optional and enabled by default. [#1981] | - Feature `cookies` is now optional and enabled by default. [#1981] | ||||||
| * `ClientBuilder::connector` method would take `actix_http::client::Connector<T, U>` type. [#2008] | - `ClientBuilder::connector` method would take `actix_http::client::Connector<T, U>` type. [#2008] | ||||||
| * Basic auth password now takes blank passwords as an empty string instead of Option. [#2050] | - Basic auth password now takes blank passwords as an empty string instead of Option. [#2050] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `ClientBuilder::default` function [#2008] | - `ClientBuilder::default` function [#2008] | ||||||
| 
 | 
 | ||||||
| [#1931]: https://github.com/actix/actix-web/pull/1931 | [#1931]: https://github.com/actix/actix-web/pull/1931 | ||||||
| [#1981]: https://github.com/actix/actix-web/pull/1981 | [#1981]: https://github.com/actix/actix-web/pull/1981 | ||||||
|  | @ -100,18 +100,18 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.2 - 2021-02-10 | ## 3.0.0-beta.2 - 2021-02-10 | ||||||
| ### Added | ### Added | ||||||
| * `ClientRequest::insert_header` method which allows using typed headers. [#1869] | - `ClientRequest::insert_header` method which allows using typed headers. [#1869] | ||||||
| * `ClientRequest::append_header` method which allows using typed headers. [#1869] | - `ClientRequest::append_header` method which allows using typed headers. [#1869] | ||||||
| * `trust-dns` optional feature to enable `trust-dns-resolver` as client dns resolver. [#1969] | - `trust-dns` optional feature to enable `trust-dns-resolver` as client dns resolver. [#1969] | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| * Relax default timeout for `Connector` to 5 seconds(original 1 second). [#1905] | - Relax default timeout for `Connector` to 5 seconds(original 1 second). [#1905] | ||||||
| 
 | 
 | ||||||
| ### Removed | ### Removed | ||||||
| * `ClientRequest::set`; use `ClientRequest::insert_header`. [#1869] | - `ClientRequest::set`; use `ClientRequest::insert_header`. [#1869] | ||||||
| * `ClientRequest::set_header`; use `ClientRequest::insert_header`. [#1869] | - `ClientRequest::set_header`; use `ClientRequest::insert_header`. [#1869] | ||||||
| * `ClientRequest::set_header_if_none`; use `ClientRequest::insert_header_if_none`. [#1869] | - `ClientRequest::set_header_if_none`; use `ClientRequest::insert_header_if_none`. [#1869] | ||||||
| * `ClientRequest::header`; use `ClientRequest::append_header`. [#1869] | - `ClientRequest::header`; use `ClientRequest::append_header`. [#1869] | ||||||
| 
 | 
 | ||||||
| [#1869]: https://github.com/actix/actix-web/pull/1869 | [#1869]: https://github.com/actix/actix-web/pull/1869 | ||||||
| [#1905]: https://github.com/actix/actix-web/pull/1905 | [#1905]: https://github.com/actix/actix-web/pull/1905 | ||||||
|  | @ -120,32 +120,32 @@ | ||||||
| 
 | 
 | ||||||
| ## 3.0.0-beta.1 - 2021-01-07 | ## 3.0.0-beta.1 - 2021-01-07 | ||||||
| ### Changed | ### Changed | ||||||
| * Update `rand` to `0.8` | - Update `rand` to `0.8` | ||||||
| * Update `bytes` to `1.0`. [#1813] | - Update `bytes` to `1.0`. [#1813] | ||||||
| * Update `rust-tls` to `0.19`. [#1813] | - Update `rust-tls` to `0.19`. [#1813] | ||||||
| 
 | 
 | ||||||
| [#1813]: https://github.com/actix/actix-web/pull/1813 | [#1813]: https://github.com/actix/actix-web/pull/1813 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.3 - 2020-11-29 | ## 2.0.3 - 2020-11-29 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Ensure `actix-http` dependency uses same `serde_urlencoded`. | - Ensure `actix-http` dependency uses same `serde_urlencoded`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.2 - 2020-11-25 | ## 2.0.2 - 2020-11-25 | ||||||
| ### Changed | ### Changed | ||||||
| * Upgrade `serde_urlencoded` to `0.7`. [#1773] | - Upgrade `serde_urlencoded` to `0.7`. [#1773] | ||||||
| 
 | 
 | ||||||
| [#1773]: https://github.com/actix/actix-web/pull/1773 | [#1773]: https://github.com/actix/actix-web/pull/1773 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.1 - 2020-10-30 | ## 2.0.1 - 2020-10-30 | ||||||
| ### Changed | ### Changed | ||||||
| * Upgrade `base64` to `0.13`. [#1744] | - Upgrade `base64` to `0.13`. [#1744] | ||||||
| * Deprecate `ClientRequest::{if_some, if_true}`. [#1760] | - Deprecate `ClientRequest::{if_some, if_true}`. [#1760] | ||||||
| 
 | 
 | ||||||
| ### Fixed | ### Fixed | ||||||
| * Use `Accept-Encoding: identity` instead of `Accept-Encoding: br` when no compression feature | - Use `Accept-Encoding: identity` instead of `Accept-Encoding: br` when no compression feature | ||||||
|   is enabled [#1737] |   is enabled [#1737] | ||||||
| 
 | 
 | ||||||
| [#1737]: https://github.com/actix/actix-web/pull/1737 | [#1737]: https://github.com/actix/actix-web/pull/1737 | ||||||
|  | @ -155,209 +155,209 @@ | ||||||
| 
 | 
 | ||||||
| ## 2.0.0 - 2020-09-11 | ## 2.0.0 - 2020-09-11 | ||||||
| ### Changed | ### Changed | ||||||
| * `Client::build` was renamed to `Client::builder`. | - `Client::build` was renamed to `Client::builder`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-beta.4 - 2020-09-09 | ## 2.0.0-beta.4 - 2020-09-09 | ||||||
| ### Changed | ### Changed | ||||||
| * Update actix-codec & actix-tls dependencies. | - Update actix-codec & actix-tls dependencies. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-beta.3 - 2020-08-17 | ## 2.0.0-beta.3 - 2020-08-17 | ||||||
| ### Changed | ### Changed | ||||||
| * Update `rustls` to 0.18 | - Update `rustls` to 0.18 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## 2.0.0-beta.2 - 2020-07-21 | ## 2.0.0-beta.2 - 2020-07-21 | ||||||
| ### Changed | ### Changed | ||||||
| * Update `actix-http` dependency to 2.0.0-beta.2 | - Update `actix-http` dependency to 2.0.0-beta.2 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [2.0.0-beta.1] - 2020-07-14 | ## [2.0.0-beta.1] - 2020-07-14 | ||||||
| ### Changed | ### Changed | ||||||
| * Update `actix-http` dependency to 2.0.0-beta.1 | - Update `actix-http` dependency to 2.0.0-beta.1 | ||||||
| 
 | 
 | ||||||
| ## [2.0.0-alpha.2] - 2020-05-21 | ## [2.0.0-alpha.2] - 2020-05-21 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Implement `std::error::Error` for our custom errors [#1422] | - Implement `std::error::Error` for our custom errors [#1422] | ||||||
| * Bump minimum supported Rust version to 1.40 | - Bump minimum supported Rust version to 1.40 | ||||||
| * Update `base64` dependency to 0.12 | - Update `base64` dependency to 0.12 | ||||||
| 
 | 
 | ||||||
| [#1422]: https://github.com/actix/actix-web/pull/1422 | [#1422]: https://github.com/actix/actix-web/pull/1422 | ||||||
| 
 | 
 | ||||||
| ## [2.0.0-alpha.1] - 2020-03-11 | ## [2.0.0-alpha.1] - 2020-03-11 | ||||||
| 
 | 
 | ||||||
| * Update `actix-http` dependency to 2.0.0-alpha.2 | - Update `actix-http` dependency to 2.0.0-alpha.2 | ||||||
| * Update `rustls` dependency to 0.17 | - Update `rustls` dependency to 0.17 | ||||||
| * ClientBuilder accepts initial_window_size and initial_connection_window_size HTTP2 configuration | - ClientBuilder accepts initial_window_size and initial_connection_window_size HTTP2 configuration | ||||||
| * ClientBuilder allowing to set max_http_version to limit HTTP version to be used | - ClientBuilder allowing to set max_http_version to limit HTTP version to be used | ||||||
| 
 | 
 | ||||||
| ## [1.0.1] - 2019-12-15 | ## [1.0.1] - 2019-12-15 | ||||||
| 
 | 
 | ||||||
| * Fix compilation with default features off | - Fix compilation with default features off | ||||||
| 
 | 
 | ||||||
| ## [1.0.0] - 2019-12-13 | ## [1.0.0] - 2019-12-13 | ||||||
| 
 | 
 | ||||||
| * Release | - Release | ||||||
| 
 | 
 | ||||||
| ## [1.0.0-alpha.3] | ## [1.0.0-alpha.3] | ||||||
| 
 | 
 | ||||||
| * Migrate to `std::future` | - Migrate to `std::future` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.8] - 2019-11-06 | ## [0.2.8] - 2019-11-06 | ||||||
| 
 | 
 | ||||||
| * Add support for setting query from Serialize type for client request. | - Add support for setting query from Serialize type for client request. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.7] - 2019-09-25 | ## [0.2.7] - 2019-09-25 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Remaining getter methods for `ClientRequest`'s private `head` field #1101 | - Remaining getter methods for `ClientRequest`'s private `head` field #1101 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.6] - 2019-09-12 | ## [0.2.6] - 2019-09-12 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Export frozen request related types. | - Export frozen request related types. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.5] - 2019-09-11 | ## [0.2.5] - 2019-09-11 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Add `FrozenClientRequest` to support retries for sending HTTP requests | - Add `FrozenClientRequest` to support retries for sending HTTP requests | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Ensure that the `Host` header is set when initiating a WebSocket client connection. | - Ensure that the `Host` header is set when initiating a WebSocket client connection. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.4] - 2019-08-13 | ## [0.2.4] - 2019-08-13 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Update percent-encoding to "2.1" | - Update percent-encoding to "2.1" | ||||||
| 
 | 
 | ||||||
| * Update serde_urlencoded to "0.6.1" | - Update serde_urlencoded to "0.6.1" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.3] - 2019-08-01 | ## [0.2.3] - 2019-08-01 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Add `rustls` support | - Add `rustls` support | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.2] - 2019-07-01 | ## [0.2.2] - 2019-07-01 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Always append a colon after username in basic auth | - Always append a colon after username in basic auth | ||||||
| 
 | 
 | ||||||
| * Upgrade `rand` dependency version to 0.7 | - Upgrade `rand` dependency version to 0.7 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.2.1] - 2019-06-05 | ## [0.2.1] - 2019-06-05 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Add license files | - Add license files | ||||||
| 
 | 
 | ||||||
| ## [0.2.0] - 2019-05-12 | ## [0.2.0] - 2019-05-12 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Allow to send headers in `Camel-Case` form. | - Allow to send headers in `Camel-Case` form. | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Upgrade actix-http dependency. | - Upgrade actix-http dependency. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.1] - 2019-04-19 | ## [0.1.1] - 2019-04-19 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Allow to specify server address for http and ws requests. | - Allow to specify server address for http and ws requests. | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * `ClientRequest::if_true()` and `ClientRequest::if_some()` use instance instead of ref | - `ClientRequest::if_true()` and `ClientRequest::if_some()` use instance instead of ref | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0] - 2019-04-16 | ## [0.1.0] - 2019-04-16 | ||||||
| 
 | 
 | ||||||
| * No changes | - No changes | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.6] - 2019-04-14 | ## [0.1.0-alpha.6] - 2019-04-14 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Do not set default headers for websocket request | - Do not set default headers for websocket request | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.5] - 2019-04-12 | ## [0.1.0-alpha.5] - 2019-04-12 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Do not set any default headers | - Do not set any default headers | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Add Debug impl for BoxedSocket | - Add Debug impl for BoxedSocket | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.4] - 2019-04-08 | ## [0.1.0-alpha.4] - 2019-04-08 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Update actix-http dependency | - Update actix-http dependency | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.3] - 2019-04-02 | ## [0.1.0-alpha.3] - 2019-04-02 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Export `MessageBody` type | - Export `MessageBody` type | ||||||
| 
 | 
 | ||||||
| * `ClientResponse::json()` - Loads and parse `application/json` encoded body | - `ClientResponse::json()` - Loads and parse `application/json` encoded body | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * `ClientRequest::json()` accepts reference instead of object. | - `ClientRequest::json()` accepts reference instead of object. | ||||||
| 
 | 
 | ||||||
| * `ClientResponse::body()` does not consume response object. | - `ClientResponse::body()` does not consume response object. | ||||||
| 
 | 
 | ||||||
| * Renamed `ClientRequest::close_connection()` to `ClientRequest::force_close()` | - Renamed `ClientRequest::close_connection()` to `ClientRequest::force_close()` | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.2] - 2019-03-29 | ## [0.1.0-alpha.2] - 2019-03-29 | ||||||
| 
 | 
 | ||||||
| ### Added | ### Added | ||||||
| 
 | 
 | ||||||
| * Per request and session wide request timeout. | - Per request and session wide request timeout. | ||||||
| 
 | 
 | ||||||
| * Session wide headers. | - Session wide headers. | ||||||
| 
 | 
 | ||||||
| * Session wide basic and bearer auth. | - Session wide basic and bearer auth. | ||||||
| 
 | 
 | ||||||
| * Re-export `actix_http::client::Connector`. | - Re-export `actix_http::client::Connector`. | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ### Changed | ### Changed | ||||||
| 
 | 
 | ||||||
| * Allow to override request's uri | - Allow to override request's uri | ||||||
| 
 | 
 | ||||||
| * Export `ws` sub-module with websockets related types | - Export `ws` sub-module with websockets related types | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ## [0.1.0-alpha.1] - 2019-03-28 | ## [0.1.0-alpha.1] - 2019-03-28 | ||||||
| 
 | 
 | ||||||
| * Initial impl | - Initial impl | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue