All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- changed: Updated
tower
from0.4
to0.5
. - added: Support reading PKCS#1 and SEC1 private keys with Rustls.
- added: Crate feature
tls-rustls-no-provider
, which enables norustls::crypto::CryptoProvider
. - fixed: Correct minimum required
hyper-util
to0.1.2
.
- fixed: Graceful shutdown now stops accepting requests from existing connections.
- changed: Updated
rustls
from0.21
to0.23
. - changed: Updated
tokio-rustls
from0.24
to0.26
. - changed: Updated
hyper
from1.0.1
to1.4
. - changed: Updated
http
from1.0.0
to1.1
. - added:
rustls-pki-types
dependency for thetls-rustls
feature. - changed: Replaced usage of
rustls::Certificate
andrustls::PrivateKey
withrustls_pki_types::CertificateDer
andrustls_pki_types::PrivateKeyDer
. - changed: Updated
ServerConfig
initialization to removewith_safe_defaults()
call. - changed: Updated
ClientConfig
initialization in tests to usedangerous()
instead ofwith_safe_defaults()
. - changed: Updated
ServerCertVerifier
implementation in tests to match new rustls API. - changed: Minor version bumps for various dependencies including
rustls-pemfile
,serial_test
, andtower-http
.
- added: functionalities in
tls_openssl
, that were added as they appeared to be only intls_rustls
:axum_server::tls_openssl::OpenSSLConfig::from_acceptor
axum_server::tls_openssl::OpenSSLConfig::from_der
axum_server::tls_openssl::OpenSSLConfig::from_pem
axum_server::tls_openssl::OpenSSLConfig::get_inner
axum_server::tls_openssl::OpenSSLConfig::reload_from_der
axum_server::tls_openssl::OpenSSLConfig::reload_from_pem
axum_server::tls_openssl::OpenSSLConfig::reload_from_pem_file
axum_server::tls_openssl::OpenSSLConfig::reload_from_pem_chain_file
- added:
from_pem_chain_file
method forRustlsConfig
. - breaking: Removed
HttpConfig
andAddrIncomingConfig
. - breaking: Updated
axum
from0.6
to0.7
. - breaking: Updated
hyper
to1.0.1
.
- added:
http2_enable_connect_protocol
,http2_max_header_list_size
,http2_max_pending_accept_reset_streams
andhttp2_max_send_buf_size
methods toHttpConfig
.
- breaking: Updated
rustls
from0.20
to0.21
which affectsServerConfig
type. - breaking: Updated
tokio-rustls
from0.23
to0.24
which affectsTlsStream
type.
- added: Openssl is now supported.
- changed:
Handle::graceful_shutdown
now informs connections about the graceful shutdown.
- added: Added
tcp_keepalive_interval
andtcp_keepalive_retries
toAddrIncomingConfig
.
- added: Added
Server::from_tcp
,axum_server::from_tcp
andaxum_server::from_tcp_rustls
methods to createServer
fromstd::net::TcpListener
.
- added: Added
map
,get
andget_mut
methods to access the acceptor ofServer
.
- Added TLS handshake timeout(10 seconds).
- In
RustlsConfig
:from_pem
andfrom_pem_file
methods now accept EC keys. - added: Added
AddrIncomingConfig
to allow configuration ofhyper::server::conn::AddrIncoming
. - added: Added
HttpConfig::http1_header_read_timeout
. - breaking: Changed
Handle::listening
return type toOption<SocketAddr>
. If binding fails,Option::None
will be returned.
- added: Added
HttpConfig
to allow more configuration.
- fixed:
tls-rustls
feature doesn't compile iffs
feature intokio
is not enabled.
- Total rewrite of source code.
- Major api changes:
- breaking: Removed
bind_rustls
,certificate
,certificate_file
,loader
,new
,private_key
,private_key_file
,serve_and_record
,tls_config
methods fromServer
. - breaking: Removed
tls
module. - breaking: Removed
record
module and feature. - breaking: Removed
Handle::listening_addrs
method. - breaking:
Server::bind
method doesn't takeself
anymore and creates anServer
. - breaking:
bind
method now takes aSocketAddr
. - breaking:
bind_rustls
method now takes aSocketAddr
and antls_rustls::RustlsConfig
. - breaking:
Server::serve
method now takes aMakeService
. - breaking:
Handle::listening
method now returnsSocketAddr
. - added: Added
Handle::connection_count
that can be used to get alive connection count. - added: Added
service
module. - added: Added
service::MakeServiceRef
andservice::SendService
traits aliases for convenience. - added: Added
accept
module. - added: Added
accept::Accept
trait that can be implemented to modify io stream and service. - added: Added
accept::DefaultAcceptor
struct that implementsaccept::Accept
to be used as a default 'Accept' for 'Server'. - added: Added
Server::acceptor
method that can be used to provide a customaccept::Accept
. - added: Added
tls_rustls
module. - added: Added
tls_rustls::RustlsAcceptor
that can be used withServer::acceptor
to make a tlsServer
. - added: Added
tls_rustls::RustlsConfig
to create rustls utilities and to provide reload functionality. - added: Added
tls_rustls::bind_rustls
which is same asbind_rustls
function.
- breaking: Removed
- Compile on rust
1.51
.
- Reduced
futures-util
features to improve compile times.
- Fixed
bind
andbind_rustls
not working on some types.
- Added uri
Scheme
inRequest
extensions. - Fixed memory leak that happens as connections are accepted.
- Fixed
serve_and_record
not recording independently for each connection.
- Added
TlsLoader
to reload tls configuration. - Added
Handle
to provide additional utilities for server.
- Fixed an import issue when using
tls-rustls
feature.
- Initial release.