Compare commits

..

No commits in common. "master" and "rt-v2.11.0" have entirely different histories.

28 changed files with 274 additions and 467 deletions

View File

@ -2,7 +2,6 @@ version: "0.2"
words: words:
- actix - actix
- addrs - addrs
- bytestring
- clippy - clippy
- deque - deque
- itertools - itertools
@ -14,7 +13,6 @@ words:
- rcgen - rcgen
- Rustls - Rustls
- rustup - rustup
- serde
- spki - spki
- uring - uring
- webpki - webpki

View File

@ -59,12 +59,12 @@ jobs:
echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV
- name: Install Rust (${{ matrix.version }}) - name: Install Rust (${{ matrix.version }})
uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: with:
toolchain: ${{ matrix.version }} toolchain: ${{ matrix.version }}
- name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean
uses: taiki-e/install-action@v2.62.45 uses: taiki-e/install-action@v2.58.21
with: with:
tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean
@ -116,12 +116,12 @@ jobs:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Install Rust (nightly) - name: Install Rust (nightly)
uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: with:
toolchain: nightly toolchain: nightly
- name: Install cargo-hack & cargo-minimal-versions - name: Install cargo-hack & cargo-minimal-versions
uses: taiki-e/install-action@v2.62.45 uses: taiki-e/install-action@v2.58.21
with: with:
tool: cargo-hack,cargo-minimal-versions tool: cargo-hack,cargo-minimal-versions

View File

@ -68,12 +68,12 @@ jobs:
echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV
- name: Install Rust (${{ matrix.version.name }}) - name: Install Rust (${{ matrix.version.name }})
uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: with:
toolchain: ${{ matrix.version.version }} toolchain: ${{ matrix.version.version }}
- name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean
uses: taiki-e/install-action@v2.62.45 uses: taiki-e/install-action@v2.58.21
with: with:
tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean
@ -120,12 +120,12 @@ jobs:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Install Rust (nightly) - name: Install Rust (nightly)
uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: with:
toolchain: nightly toolchain: nightly
- name: Install just - name: Install just
uses: taiki-e/install-action@v2.62.45 uses: taiki-e/install-action@v2.58.21
with: with:
tool: just tool: just

View File

@ -18,12 +18,12 @@ jobs:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Install Rust - name: Install Rust
uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: with:
components: llvm-tools-preview components: llvm-tools-preview
- name: Install cargo-llvm-cov - name: Install cargo-llvm-cov
uses: taiki-e/install-action@v2.62.45 uses: taiki-e/install-action@v2.58.21
with: with:
tool: cargo-llvm-cov tool: cargo-llvm-cov
@ -31,7 +31,7 @@ jobs:
run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json
- name: Upload coverage to Codecov - name: Upload coverage to Codecov
uses: codecov/codecov-action@v5.5.1 uses: codecov/codecov-action@v5.5.0
with: with:
files: codecov.json files: codecov.json
fail_ci_if_error: true fail_ci_if_error: true

View File

@ -18,7 +18,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: with:
toolchain: nightly toolchain: nightly
components: rustfmt components: rustfmt
@ -35,7 +35,7 @@ jobs:
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: { components: clippy } with: { components: clippy }
- uses: giraffate/clippy-action@v1.0.1 - uses: giraffate/clippy-action@v1.0.1
@ -51,17 +51,17 @@ jobs:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
- name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }})
uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: with:
toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }}
- name: Install just - name: Install just
uses: taiki-e/install-action@v2.62.45 uses: taiki-e/install-action@v2.58.21
with: with:
tool: just tool: just
- name: Install cargo-check-external-types - name: Install cargo-check-external-types
uses: taiki-e/cache-cargo-install-action@v2.3.1 uses: taiki-e/cache-cargo-install-action@v2.3.0
with: with:
tool: cargo-check-external-types tool: cargo-check-external-types

615
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -19,7 +19,7 @@ homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-net" repository = "https://github.com/actix/actix-net"
license = "MIT OR Apache-2.0" license = "MIT OR Apache-2.0"
edition = "2021" edition = "2021"
rust-version = "1.76" rust-version = "1.75"
[patch.crates-io] [patch.crates-io]
actix-codec = { path = "actix-codec" } actix-codec = { path = "actix-codec" }

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 0.5.2 ## 0.5.2

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 0.2.4 ## 0.2.4

View File

@ -2,8 +2,6 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76.
## 2.11.0 ## 2.11.0
- Implement `ActixStream` for `tokio::io::BufReader<IO>`. - Implement `ActixStream` for `tokio::io::BufReader<IO>`.

View File

@ -2,8 +2,6 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76.
## 2.6.0 ## 2.6.0
- Add `ServerBuilder::shutdown_signal()` method. - Add `ServerBuilder::shutdown_signal()` method.

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 2.0.3 ## 2.0.3

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 3.4.0 ## 3.4.0

View File

@ -51,12 +51,12 @@ rustls-0_21-native-roots = ["tokio-rustls-024", "dep:rustls-native-certs-06"]
# use rustls v0.22 impls # use rustls v0.22 impls
rustls-0_22 = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1"] rustls-0_22 = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1"]
rustls-0_22-webpki-roots = ["rustls-0_22", "dep:webpki-roots-026"] rustls-0_22-webpki-roots = ["rustls-0_22", "dep:webpki-roots-026"]
rustls-0_22-native-roots = ["rustls-0_22", "dep:rustls-native-certs-08"] rustls-0_22-native-roots = ["rustls-0_22", "dep:rustls-native-certs-07"]
# use rustls v0.23 impls # use rustls v0.23 impls
rustls-0_23 = ["dep:tokio-rustls-026", "dep:rustls-pki-types-1"] rustls-0_23 = ["dep:tokio-rustls-026", "dep:rustls-pki-types-1"]
rustls-0_23-webpki-roots = ["rustls-0_23", "dep:webpki-roots-026"] rustls-0_23-webpki-roots = ["rustls-0_23", "dep:webpki-roots-026"]
rustls-0_23-native-roots = ["rustls-0_23", "dep:rustls-native-certs-08"] rustls-0_23-native-roots = ["rustls-0_23", "dep:rustls-native-certs-07"]
# use native-tls impls # use native-tls impls
native-tls = ["dep:tokio-native-tls"] native-tls = ["dep:tokio-native-tls"]
@ -105,7 +105,7 @@ webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true
# native root certificates for rustls impls # native root certificates for rustls impls
rustls-native-certs-06 = { package = "rustls-native-certs", version = "0.6", optional = true } rustls-native-certs-06 = { package = "rustls-native-certs", version = "0.6", optional = true }
rustls-native-certs-08 = { package = "rustls-native-certs", version = "0.8", optional = true } rustls-native-certs-07 = { package = "rustls-native-certs", version = "0.7", optional = true }
# native-tls # native-tls
tokio-native-tls = { version = "0.3", optional = true } tokio-native-tls = { version = "0.3", optional = true }
@ -120,12 +120,12 @@ actix-rt = "2.2"
actix-server = "2" actix-server = "2"
bytes = "1" bytes = "1"
futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } futures-util = { version = "0.3.17", default-features = false, features = ["sink"] }
hickory-resolver = "0.25"
itertools = "0.14" itertools = "0.14"
pretty_env_logger = "0.5" pretty_env_logger = "0.5"
rcgen = "0.13" rcgen = "0.13"
rustls-pemfile = "2" rustls-pemfile = "2"
tokio-rustls-026 = { package = "tokio-rustls", version = "0.26" } tokio-rustls-026 = { package = "tokio-rustls", version = "0.26" }
trust-dns-resolver = "0.23"
[[example]] [[example]]
name = "accept-rustls" name = "accept-rustls"

View File

@ -13,11 +13,11 @@ use futures_core::future::LocalBoxFuture;
/// use actix_tls::connect::{Resolve, Resolver}; /// use actix_tls::connect::{Resolve, Resolver};
/// use futures_util::future::LocalBoxFuture; /// use futures_util::future::LocalBoxFuture;
/// ///
/// // use Hickory DNS tokio resolver /// // use trust-dns async tokio resolver
/// use hickory_resolver::TokioResolver; /// use trust_dns_resolver::TokioAsyncResolver;
/// ///
/// struct MyResolver { /// struct MyResolver {
/// hickory_dns: TokioResolver, /// trust_dns: TokioAsyncResolver,
/// }; /// };
/// ///
/// // impl Resolve trait and convert given host address str and port to SocketAddr. /// // impl Resolve trait and convert given host address str and port to SocketAddr.
@ -29,7 +29,7 @@ use futures_core::future::LocalBoxFuture;
/// ) -> LocalBoxFuture<'a, Result<Vec<SocketAddr>, Box<dyn std::error::Error>>> { /// ) -> LocalBoxFuture<'a, Result<Vec<SocketAddr>, Box<dyn std::error::Error>>> {
/// Box::pin(async move { /// Box::pin(async move {
/// let res = self /// let res = self
/// .hickory_dns /// .trust_dns
/// .lookup_ip(host) /// .lookup_ip(host)
/// .await? /// .await?
/// .iter() /// .iter()
@ -41,7 +41,7 @@ use futures_core::future::LocalBoxFuture;
/// } /// }
/// ///
/// let my_resolver = MyResolver { /// let my_resolver = MyResolver {
/// hickory_dns: TokioResolver::builder_tokio().unwrap().build(), /// trust_dns: TokioAsyncResolver::tokio_from_system_conf().unwrap(),
/// }; /// };
/// ///
/// // wrap custom resolver /// // wrap custom resolver

View File

@ -35,17 +35,12 @@ pub mod reexports {
/// ///
/// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors.
/// ///
/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_08::load_native_certs() /// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_07::load_native_certs()
#[cfg(feature = "rustls-0_22-native-roots")] #[cfg(feature = "rustls-0_22-native-roots")]
pub fn native_roots_cert_store() -> io::Result<tokio_rustls::rustls::RootCertStore> { pub fn native_roots_cert_store() -> io::Result<tokio_rustls::rustls::RootCertStore> {
let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); let mut root_certs = tokio_rustls::rustls::RootCertStore::empty();
let certs = rustls_native_certs_08::load_native_certs(); for cert in rustls_native_certs_07::load_native_certs()? {
if let Some(err) = certs.errors.into_iter().next() {
return Err(io::Error::other(err));
}
for cert in certs.certs {
root_certs.add(cert).unwrap(); root_certs.add(cert).unwrap();
} }

View File

@ -35,17 +35,12 @@ pub mod reexports {
/// ///
/// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors.
/// ///
/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_08::load_native_certs() /// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_07::load_native_certs()
#[cfg(feature = "rustls-0_23-native-roots")] #[cfg(feature = "rustls-0_23-native-roots")]
pub fn native_roots_cert_store() -> io::Result<tokio_rustls::rustls::RootCertStore> { pub fn native_roots_cert_store() -> io::Result<tokio_rustls::rustls::RootCertStore> {
let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); let mut root_certs = tokio_rustls::rustls::RootCertStore::empty();
let certs = rustls_native_certs_08::load_native_certs(); for cert in rustls_native_certs_07::load_native_certs()? {
if let Some(err) = certs.errors.into_iter().next() {
return Err(io::Error::other(err));
}
for cert in certs.certs {
root_certs.add(cert).unwrap(); root_certs.add(cert).unwrap();
} }

View File

@ -2,7 +2,7 @@
#![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_logo_url = "https://actix.rs/img/logo.png")]
#![doc(html_favicon_url = "https://actix.rs/favicon.ico")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")]
#![cfg_attr(docsrs, feature(doc_cfg))] #![cfg_attr(docsrs, feature(doc_auto_cfg))]
#[cfg(feature = "openssl")] #[cfg(feature = "openssl")]
#[allow(unused_extern_crates)] #[allow(unused_extern_crates)]

View File

@ -50,12 +50,12 @@ async fn custom_resolver_connect() {
Connector::new(resolver) Connector::new(resolver)
} }
use hickory_resolver::TokioResolver; use trust_dns_resolver::TokioAsyncResolver;
let srv = TestServer::start(|| fn_service(|_io: TcpStream| async { Ok::<_, io::Error>(()) })); let srv = TestServer::start(|| fn_service(|_io: TcpStream| async { Ok::<_, io::Error>(()) }));
struct MyResolver { struct MyResolver {
hickory_dns: TokioResolver, trust_dns: TokioAsyncResolver,
} }
impl Resolve for MyResolver { impl Resolve for MyResolver {
@ -66,7 +66,7 @@ async fn custom_resolver_connect() {
) -> LocalBoxFuture<'a, Result<Vec<SocketAddr>, Box<dyn std::error::Error>>> { ) -> LocalBoxFuture<'a, Result<Vec<SocketAddr>, Box<dyn std::error::Error>>> {
Box::pin(async move { Box::pin(async move {
let res = self let res = self
.hickory_dns .trust_dns
.lookup_ip(host) .lookup_ip(host)
.await? .await?
.iter() .iter()
@ -78,7 +78,7 @@ async fn custom_resolver_connect() {
} }
let resolver = MyResolver { let resolver = MyResolver {
hickory_dns: TokioResolver::builder_tokio().unwrap().build(), trust_dns: TokioAsyncResolver::tokio_from_system_conf().unwrap(),
}; };
let factory = connector_factory(Resolver::custom(resolver)); let factory = connector_factory(Resolver::custom(resolver));

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 0.1.0 ## 0.1.0

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 3.0.1 ## 3.0.1

View File

@ -2,13 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76.
## 1.5.0
- Migrate `serde` dependency to `serde_core`.
- Minimum supported Rust version (MSRV) is now 1.75. - Minimum supported Rust version (MSRV) is now 1.75.
- Switch `serde` to `serde_core`
## 1.4.0 ## 1.4.0

View File

@ -1,6 +1,6 @@
[package] [package]
name = "bytestring" name = "bytestring"
version = "1.5.0" version = "1.4.0"
description = "A UTF-8 encoded read-only string using `Bytes` as storage" description = "A UTF-8 encoded read-only string using `Bytes` as storage"
authors = ["Nikolay Kim <fafhrd91@gmail.com>", "Rob Ede <robjtede@icloud.com>"] authors = ["Nikolay Kim <fafhrd91@gmail.com>", "Rob Ede <robjtede@icloud.com>"]
keywords = ["string", "bytes", "utf8", "web", "bytestring"] keywords = ["string", "bytes", "utf8", "web", "bytestring"]
@ -12,14 +12,11 @@ edition.workspace = true
rust-version.workspace = true rust-version.workspace = true
[package.metadata.cargo_check_external_types] [package.metadata.cargo_check_external_types]
allowed_external_types = ["bytes::*", "serde_core::*"] allowed_external_types = ["bytes::*", "serde::*"]
[features]
serde = ["dep:serde_core"]
[dependencies] [dependencies]
bytes = { version = "1.2", default-features = false } bytes = { version = "1.2", default-features = false }
serde_core = { version = "1", optional = true } serde = { version = "1", optional = true }
[dev-dependencies] [dev-dependencies]
ahash = { version = "0.8", default-features = false } ahash = { version = "0.8", default-features = false }

View File

@ -5,11 +5,11 @@
<!-- prettier-ignore-start --> <!-- prettier-ignore-start -->
[![crates.io](https://img.shields.io/crates/v/bytestring?label=latest)](https://crates.io/crates/bytestring) [![crates.io](https://img.shields.io/crates/v/bytestring?label=latest)](https://crates.io/crates/bytestring)
[![Documentation](https://docs.rs/bytestring/badge.svg?version=1.5.0)](https://docs.rs/bytestring/1.5.0) [![Documentation](https://docs.rs/bytestring/badge.svg?version=1.4.0)](https://docs.rs/bytestring/1.4.0)
[![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) [![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html)
![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/bytestring.svg) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/bytestring.svg)
<br /> <br />
[![Dependency Status](https://deps.rs/crate/bytestring/1.5.0/status.svg)](https://deps.rs/crate/bytestring/1.5.0) [![Dependency Status](https://deps.rs/crate/bytestring/1.4.0/status.svg)](https://deps.rs/crate/bytestring/1.4.0)
![Download](https://img.shields.io/crates/d/bytestring.svg) ![Download](https://img.shields.io/crates/d/bytestring.svg)
[![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x)

View File

@ -275,7 +275,7 @@ impl fmt::Display for ByteString {
mod serde { mod serde {
use alloc::string::String; use alloc::string::String;
use serde_core::{ use serde::{
de::{Deserialize, Deserializer}, de::{Deserialize, Deserializer},
ser::{Serialize, Serializer}, ser::{Serialize, Serializer},
}; };
@ -304,7 +304,7 @@ mod serde {
#[cfg(test)] #[cfg(test)]
mod serde_impl_tests { mod serde_impl_tests {
use serde_core::de::DeserializeOwned; use serde::de::DeserializeOwned;
use static_assertions::assert_impl_all; use static_assertions::assert_impl_all;
use super::*; use super::*;

View File

@ -30,7 +30,6 @@ downgrade-for-msrv:
cargo {{ toolchain }} update -p=litemap --precise=0.7.4 # next ver: 1.81.0 cargo {{ toolchain }} update -p=litemap --precise=0.7.4 # next ver: 1.81.0
cargo {{ toolchain }} update -p=zerofrom --precise=0.1.5 # next ver: 1.81.0 cargo {{ toolchain }} update -p=zerofrom --precise=0.1.5 # next ver: 1.81.0
cargo {{ toolchain }} update -p=half --precise=2.4.1 # next ver: 1.81.0 cargo {{ toolchain }} update -p=half --precise=2.4.1 # next ver: 1.81.0
cargo {{ toolchain }} update -p=time --precise=0.3.41 # next ver: 1.81.0
msrv := ``` msrv := ```
cargo metadata --format-version=1 \ cargo metadata --format-version=1 \

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 0.1.5 ## 0.1.5

View File

@ -2,7 +2,7 @@
## Unreleased ## Unreleased
- Minimum supported Rust version (MSRV) is now 1.76. - Minimum supported Rust version (MSRV) is now 1.75.
## 0.1.4 ## 0.1.4