# Changes
## [0.5.8] - 2022-01-10
* Remove usage of ntex::io::Boxed types
* Remove unneeded re-exports
## [0.5.7] - 2022-01-05
* http: fix rustls feature
## [0.5.6] - 2022-01-03
* web: Restore `App::finish()` method
## [0.5.5] - 2022-01-03
* Disable default runtime selection
* Move ntex::util services to ntex-util
## [0.5.4] - 2022-01-02
* http1: Unregister keep-alive timer after request is received
* web: Add option to use default `AppConfig` for App type factory
## [0.5.3] - 2021-12-31
* Fix WsTransport shutdown, send close frame
## [0.5.2] - 2021-12-30
* Introduce new WsTransport implementation
## [0.5.1] - 2021-12-30
* Drop WsTransport
## [0.5.0] - 2021-12-30
* Upgrade to ntex-io 0.1
* Updrade to cookie 0.16
## [0.5.0-b.7] - 2021-12-30
* Update ntex-io to 0.1.0-b.10
## [0.5.0-b.6] - 2021-12-29
* Add `async-std` support
## [0.5.0-b.5] - 2021-12-28
* http: proper send payload, if request payload is not consumed
* ws: Fix handling for ws transport nested errors
## [0.5.0-b.4] - 2021-12-26
* Allow to get access to ws transport codec
* Move http::client::handshake to ws::handshake
## [0.5.0-b.3] - 2021-12-24
* Use new ntex-service traits
* Remove websocket support from http::client
* Add standalone ws::client
* Add websockets transport (io filter)
## [0.5.0-b.2] - 2021-12-22
* Refactor write back-pressure for http1
## [0.5.0-b.1] - 2021-12-20
* Refactor http/1 dispatcher
* Refactor Server service configuration
## [0.5.0-b.0] - 2021-12-19
* Migrate io to ntex-io
* Move ntex::time to ntex-util crate
* Replace mio with polling for accept loop
## [0.4.13] - 2021-12-07
* server: Rename .apply/.apply_async to .on_worker_start()
## [0.4.12] - 2021-12-06
* http: Use memory pools
## [0.4.11] - 2021-12-02
* framed: Use memory pools
## [0.4.10] - 2021-11-29
* Fix potential overflow sub in timer wheel
## [0.4.9] - 2021-11-20
* Update rustls to 0.20
* Update webpki to 0.22
* Update webpki-roots to 0.22
* Update tokio-rustls to 0.23
* Adapt code for rustls breaking changes
## [0.4.8] - 2021-11-08
* Add Clone impl for connect::ConnectError
## [0.4.7] - 2021-11-02
* h1: allow to override connection type in on-request handler
## [0.4.6] - 2021-10-29
* time: fix wheel time calculations
## [0.4.5] - 2021-10-20
* framed: Do not poll service for readiness if it failed before
## [0.4.4] - 2021-10-13
* Use wrapping_add for usize
* Better handling ws control frames
## [0.4.3] - 2021-10-06
* Do not modify lowres time outside of driver task
## [0.4.2] - 2021-10-06
* Update to nanorand 0.6.1
## [0.4.1] - 2021-09-27
* server: Send `ServerStatus::WorkerFailed` update if worker is failed
* server: Make `ServerBuilder::status_handler()` public
* framed: Read::resume() returns true if it was paused before
* http::client: Do not add content-length header for empty body #56
## [0.4.0] - 2021-09-17
* Refactor web middlewares/filters registration and management
* Use fxhash instead of ahash
## [0.4.0-b.13] - 2021-09-12
* Fix update timer wheel bucket calculation
## [0.4.0-b.12] - 2021-09-07
* Fix race in low res timer
## [0.4.0-b.11] - 2021-09-01
* Decrease lowres timer resolution to 5ms
## [0.4.0-b.10] - 2021-09-01
* Fix lowres timer restart
## [0.4.0-b.9] - 2021-09-01
* More timer wheel cleanups on driver drop
## [0.4.0-b.8] - 2021-09-01
* Add `ntex::time::now()` helper, returns low res time.
* Add `ntex::time::system_time()` helper, returns low res system time.
* Removed `LowResTime` and `SystemTime` services
## [0.4.0-b.7] - 2021-08-31
* Remove From<u64> for Millis impl
## [0.4.0-b.6] - 2021-08-30
* More timer wheel cleanups on driver drop
## [0.4.0-b.5] - 2021-08-28
* Cleanup timer wheel on driver drop
## [0.4.0-b.4] - 2021-08-28
* Reduce timer resolution
## [0.4.0-b.3] - 2021-08-27
* Add timer service
* Add helper time types Millis and Seconds
* Add sleep, interval, timeout helpers
* Use ntex-rt 0.3
* Use ntex-service 0.2
## [0.4.0-b.2] - 2021-08-14
* potential HTTP request smuggling vulnerabilities
## [0.4.0-b.1] - 2021-06-27
* use ntex-bytes instead of bytes
* drop direct tokio dependency
* rustls connector - fix rustls connect to work around a port in hostname (giving invalid DNS) #50
## [0.3.18] - 2021-06-03
* server: expose server status change notifications
## [0.3.17] - 2021-05-24
* framed: add read/write bytes pool
## [0.3.16] - 2021-05-17
* framed: process unhandled data on disconnect
* add "http-framework" feature
## [0.3.15] - 2021-04-11
* Move various utils to ntex-util crate
## [0.3.14] - 2021-04-03
* server: prevent double socket registration if accept loop is in back-pressure state
* util: add custom Ready, Either future and several helper functions
* drop trust-dns, use blocking calls
* reduce futures crate dependencies
* make url crate optional
## [0.3.13] - 2021-03-26
* framed: add socket disconnect notification
* http: wake up reader on h1 payload error
* ws: add sink disconnect notification
* fix wrong api docs
## [0.3.12] - 2021-03-18
* http: add per request handler service for http1
## [0.3.11] - 2021-03-16
* web: use patterns for scope's prefix definitions
* web: allow case-insensitive request matching on scope level
* web: add helper method `App::finish()`, creates service factory with default `AppConfig`
* web: add `.filter()` method, allows to register request filters
## [0.3.10] - 2021-03-15
* add buffer_params() api
## [0.3.9] - 2021-03-15
* framed: refactor api
* update socket2 0.4
## [0.3.8] - 2021-03-11
* http: fix expect/continue support, wake up write task
* framed: wakeup write task if write buf has new data
## [0.3.7] - 2021-03-10
* http: Fix service error handling for h1 proto
## [0.3.6] - 2021-03-06
* http.client: Fix WsConnection::start() definition
* http.client: Introduce WsConnection::start_default() method
* web: TestServer::ws() returns WsConnection
* util: Add `SinkService` service
## [0.3.5] - 2021-03-04
* framed: add high/low watermark for read/write buffers
* framed: write task could panic if receives more that 512 bytes during shutdown
* http/web: add high/low watermark for read/write buffers
## [0.3.4] - 2021-03-02
* Allow to use async fn for server configuration
## [0.3.3] - 2021-02-27
* Remove unneeded set_nonblocking() call from server accept loop
* Do not set `reuse_address` for tcp listener on window os
* Set nodelay to accept/connect sockets
* Update ntex-router v0.4.1
* Update cookie v0.15.0
## [0.3.2] - 2021-02-25
* Re-export various types
* Use `main` and `test` proc macro from ntex-macros
## [0.3.1] - 2021-02-24
* server: Make TestServer::connect() async
## [0.3.0] - 2021-02-24
* Migrate to tokio 1.x
## [0.2.1] - 2021-02-22
* http: Fix http date header update task
* http: Add ClientResponse::header() method
* framed: Refactor write back-pressure support
## [0.2.0] - 2021-02-21
* 0.2 release
## [0.2.0-b.14] - 2021-02-20
* connect: Allow to access to inner type of Connect
## [0.2.0-b.13] - 2021-02-20
* http: Refactor date service
* http: Do not leak request/response pools
* server: Rename ServerBulder::system_exit to stop_runtime
* util: Drop Either service, use Variant instead
## [0.2.0-b.12] - 2021-02-18
* http: Fix KeepAlive::Os support for h1 dispatcher
* Handle EINTR in server accept loop
* Fix double registation for accept back-pressure
## [0.2.0-b.11] - 2021-02-02
* framed: fix wake write method dsp_restart_write_task
## [0.2.0-b.10] - 2021-01-28
* framed: Allow to wake up write io task
* framed: Prevent uneeded read task wakeups
* framed: Cleanup State impl
## [0.2.0-b.7] - 2021-01-25
* Fix error handling for framed disaptcher
* Refactor framed disaptcher write back-pressure support
* Replace actix-threadpool with tokio utils
## [0.2.0-b.6] - 2021-01-24
* http: Pass io stream to upgrade handler
## [0.2.0-b.5] - 2021-01-23
* accept shared ref in some methods of framed::State type
## [0.2.0-b.4] - 2021-01-23
* http: Refactor h1 dispatcher
* http: Remove generic type from `Request`
* http: Remove generic type from `Payload`
* Rename FrameReadTask/FramedWriteTask to ReadTask/WriteTask
## [0.2.0-b.3] - 2021-01-21
* Allow to use framed write task for io flushing
## [0.2.0-b.2] - 2021-01-20
* Fix flush framed write task
## [0.2.0-b.1] - 2021-01-19
* Introduce ntex::framed module
* Upgrade to ntex-codec 0.2
* Drop deprecated ntex::util::order
## [0.1.29] - 2021-01-14
* Revert http/1 disapatcher changes
## [0.1.28] - 2021-01-14
* Flush and close io after ws handler exit
* Deprecate ntex::util::order
## [0.1.27] - 2021-01-13
* Use ahash instead of fxhash
* Use pin-project-lite instead of pin-project
## [0.1.26] - 2020-12-22
* Update deps
* Optimize set_date_header
## [0.1.25] - 2020-11-30
* Better names for Variant service
* Add Debug impl for FrozenClientRequest
* Add mpsc::WeakSender<T> type
## [0.1.24] - 2020-09-22
* Fix ws::stream::StreamDecoder, decodes buffer before reading from io #27
* Drop deprecated ntex::framed mod
## [0.1.23] - 2020-09-04
* Fix http1 pipeline requests with payload handling
## [0.1.22] - 2020-08-27
* Wake http client connection pool support future on drop, prevents memory leak.
* Make `Counter` non clonable.
* Fix `Address` trait usage for `net::SocketAddr` type
## [0.1.21] - 2020-07-29
* Optimize http/1 dispatcher
## [0.1.20] - 2020-07-06
* ntex::util: Add `Buffer` service
* ntex::framed: Deprecate
## [0.1.19] - 2020-06-12
* ntex::framed: Deprecate `Connect` and `ConnectResult`
* ntex::http: Move `Extensions` type to `ntex::util`
## [0.1.18] - 2020-05-29
* ntex::connect: Add `connect` helper function
* ntex::connect: Add `Address` impl for `SocketAddr`
## [0.1.17] - 2020-05-18
* ntex::util: Add Variant service
## [0.1.16] - 2020-05-10
* ntex::http: Remove redundant BodySize::Sized64
* ntex::http: Do not check h1 keep-alive during response processing
* ntex::channel: Split pooled oneshot to separate module
## [0.1.15] - 2020-05-03
* ntex::util: Refactor stream dispatcher
* ntex::http: Drop camel case headers support
* ntex::http: Fix upgrade service readiness check
* ntex::http: Add client websockets helper
* ntex::ws: Add stream and sink wrappers for ws protocol
* ntex::web: Add websockets helper
## [0.1.14] - 2020-04-27
* ntex::http: Stop client connections pool support future
* ntex::http: Removed IntoHeaderValue trait, use TryFrom instead
* ntex::ws: Fix wrong opcode for ws text and binary continuation frames
## [0.1.13] - 2020-04-21
* ntex::http: Refactor client connection pool
## [0.1.12] - 2020-04-20
* ntex::channel: Add mpsc close checks
* ntex::channel: Add oneshot close checks
## [0.1.11] - 2020-04-15
* ntex::web: Allow to add multiple routes at once
* ntex::web: Add `App::with_config` method, simplifies app service factory.
* ntex::web: Fix error type for Either responder
## [0.1.10] - 2020-04-13
* ntex::channel: mpsc::Sender::close() must close receiver
## [0.1.9] - 2020-04-13
* ntex::util: Refcator framed dispatcher
* ntex::framed: Use framed dispatcher instead of custom one
* ntex::channel: Fix mpsc::Sender close method.
## [0.1.8] - 2020-04-12
* ntex::web: Fix definition of `ok_service` and `default_service`.
* ntex::web: Add default error impl for `http::PayloadError`
* ntex::web: Add default error impl for `http::client::SendRequestError`
* ntex::web: Move `web::Data` to `web::types::Data`
* ntex::web: Simplify Responder trait
* ntex::web: Simplify WebResponse, remove `B` generic parameter
## [0.1.7] - 2020-04-10
* ntex::http: Fix handling of large http messages
* ntex::http: Refine read/write back-pressure for h1 dispatcher
* ntex::web: Restore proc macros for handler registration
## [0.1.6] - 2020-04-09
* ntex::web: Allow to add multiple services at once
* ntex::http: Remove ResponseBuilder::json2 method
## [0.1.5] - 2020-04-07
* ntex::http: enable client disconnect timeout by default
* ntex::http: properly close h1 connection
* ntex::framed: add connection disconnect timeout to framed service
## [0.1.4] - 2020-04-06
* Remove unneeded RefCell from client connector
* Add trace entries for http1 disaptcher
* Properly set timeout for test http client
## [0.1.3] - 2020-04-06
* Add server ssl handshake timeout
* Simplify server ssl erroor
## [0.1.2] - 2020-04-05
* HTTP1 dispatcher refactoring
* Replace net2 with socket2 crate
## [0.1.1] - 2020-04-01
* Project fork