mirror of
https://github.com/fafhrd91/actix-net
synced 2025-08-14 07:40:31 +02:00
Compare commits
21 Commits
server-v2.
...
server-v2.
Author | SHA1 | Date | |
---|---|---|---|
|
97e8c571cf | ||
|
0d8c7e5085 | ||
|
baf1b6042a | ||
|
779fa28bd5 | ||
|
e282811d69 | ||
|
5c44115978 | ||
|
ead0e2b200 | ||
|
ace737fc4c | ||
|
c45ae294fb | ||
|
939377f6ab | ||
|
20149f957b | ||
|
544e5d3b40 | ||
|
d482af529c | ||
|
0030800b9a | ||
|
64fa2f8462 | ||
|
b0d1c8d193 | ||
|
46cc62c6d8 | ||
|
912daa3d0a | ||
|
aefa810496 | ||
|
2c443a7620 | ||
|
b3b1583115 |
12
.github/workflows/ci-post-merge.yml
vendored
12
.github/workflows/ci-post-merge.yml
vendored
@@ -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.8.0
|
uses: actions-rust-lang/setup-rust-toolchain@v1.9.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.34.1
|
uses: taiki-e/install-action@v2.42.10
|
||||||
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@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Rust (nightly)
|
- name: Install Rust (nightly)
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
uses: actions-rust-lang/setup-rust-toolchain@v1.9.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.34.1
|
uses: taiki-e/install-action@v2.42.10
|
||||||
with:
|
with:
|
||||||
tool: cargo-hack,cargo-minimal-versions
|
tool: cargo-hack,cargo-minimal-versions
|
||||||
|
|
||||||
@@ -135,10 +135,10 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Rust
|
- name: Install Rust
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
uses: actions-rust-lang/setup-rust-toolchain@v1.9.0
|
||||||
|
|
||||||
- name: Install cargo-nextest
|
- name: Install cargo-nextest
|
||||||
uses: taiki-e/install-action@v2.34.1
|
uses: taiki-e/install-action@v2.42.10
|
||||||
with:
|
with:
|
||||||
tool: cargo-nextest
|
tool: cargo-nextest
|
||||||
|
|
||||||
|
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@@ -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.8.0
|
uses: actions-rust-lang/setup-rust-toolchain@v1.9.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.34.1
|
uses: taiki-e/install-action@v2.42.10
|
||||||
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@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Rust (nightly)
|
- name: Install Rust (nightly)
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
uses: actions-rust-lang/setup-rust-toolchain@v1.9.0
|
||||||
with:
|
with:
|
||||||
toolchain: nightly
|
toolchain: nightly
|
||||||
|
|
||||||
- name: Install just
|
- name: Install just
|
||||||
uses: taiki-e/install-action@v2.34.1
|
uses: taiki-e/install-action@v2.42.10
|
||||||
with:
|
with:
|
||||||
tool: just
|
tool: just
|
||||||
|
|
||||||
|
6
.github/workflows/coverage.yml
vendored
6
.github/workflows/coverage.yml
vendored
@@ -18,12 +18,12 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Rust
|
- name: Install Rust
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
uses: actions-rust-lang/setup-rust-toolchain@v1.9.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.34.1
|
uses: taiki-e/install-action@v2.42.10
|
||||||
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@v4.4.1
|
uses: codecov/codecov-action@v4.5.0
|
||||||
with:
|
with:
|
||||||
files: codecov.json
|
files: codecov.json
|
||||||
fail_ci_if_error: true
|
fail_ci_if_error: true
|
||||||
|
10
.github/workflows/lint.yml
vendored
10
.github/workflows/lint.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
- uses: actions-rust-lang/setup-rust-toolchain@v1.9.0
|
||||||
with:
|
with:
|
||||||
toolchain: nightly
|
toolchain: nightly
|
||||||
components: rustfmt
|
components: rustfmt
|
||||||
@@ -35,7 +35,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
- uses: actions-rust-lang/setup-rust-toolchain@v1.9.0
|
||||||
with: { components: clippy }
|
with: { components: clippy }
|
||||||
|
|
||||||
- uses: giraffate/clippy-action@v1.0.1
|
- uses: giraffate/clippy-action@v1.0.1
|
||||||
@@ -50,17 +50,17 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Rust (nightly-2023-10-10)
|
- name: Install Rust (nightly-2023-10-10)
|
||||||
uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
uses: actions-rust-lang/setup-rust-toolchain@v1.9.0
|
||||||
with:
|
with:
|
||||||
toolchain: nightly-2023-10-10
|
toolchain: nightly-2023-10-10
|
||||||
|
|
||||||
- name: Install just
|
- name: Install just
|
||||||
uses: taiki-e/install-action@v2.34.1
|
uses: taiki-e/install-action@v2.42.10
|
||||||
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.0.0
|
uses: taiki-e/cache-cargo-install-action@v2.0.1
|
||||||
with:
|
with:
|
||||||
tool: cargo-check-external-types@0.1.10
|
tool: cargo-check-external-types@0.1.10
|
||||||
|
|
||||||
|
4
.github/workflows/upload-doc.yml
vendored
4
.github/workflows/upload-doc.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- uses: actions-rust-lang/setup-rust-toolchain@v1.8.0
|
- uses: actions-rust-lang/setup-rust-toolchain@v1.9.0
|
||||||
with: { toolchain: nightly }
|
with: { toolchain: nightly }
|
||||||
|
|
||||||
- name: Build Docs
|
- name: Build Docs
|
||||||
@@ -30,7 +30,7 @@ jobs:
|
|||||||
run: echo '<meta http-equiv="refresh" content="0;url=actix_server/index.html">' > target/doc/index.html
|
run: echo '<meta http-equiv="refresh" content="0;url=actix_server/index.html">' > target/doc/index.html
|
||||||
|
|
||||||
- name: Deploy to GitHub Pages
|
- name: Deploy to GitHub Pages
|
||||||
uses: JamesIves/github-pages-deploy-action@v4.6.1
|
uses: JamesIves/github-pages-deploy-action@v4.6.3
|
||||||
with:
|
with:
|
||||||
folder: target/doc
|
folder: target/doc
|
||||||
single-commit: true
|
single-commit: true
|
||||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@@ -13,4 +13,8 @@ guide/build/
|
|||||||
# These are backup files generated by rustfmt
|
# These are backup files generated by rustfmt
|
||||||
**/*.rs.bk
|
**/*.rs.bk
|
||||||
|
|
||||||
|
# IDEs
|
||||||
.idea
|
.idea
|
||||||
|
|
||||||
|
# direnv
|
||||||
|
/.direnv
|
||||||
|
@@ -32,5 +32,5 @@ proc-macro2 = "1.0.60"
|
|||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
actix-rt = "2"
|
actix-rt = "2"
|
||||||
futures-util = { version = "0.3.17", default-features = false }
|
futures-util = { version = "0.3.17", default-features = false }
|
||||||
rustversion-msrv = "0.99"
|
rustversion-msrv = "0.100"
|
||||||
trybuild = "1"
|
trybuild = "1"
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
## 2.10.0
|
## 2.10.0
|
||||||
|
|
||||||
- Relax bound (`F: Fn -> FnOnce`) on `{Arbiter, System}::with_tokio_rt()` functions.
|
- Relax `F`'s bound (`Fn => FnOnce`) on `{Arbiter, System}::with_tokio_rt()` functions.
|
||||||
- Update `tokio-uring` dependency to `0.5`.
|
- Update `tokio-uring` dependency to `0.5`.
|
||||||
- Minimum supported Rust version (MSRV) is now 1.70.
|
- Minimum supported Rust version (MSRV) is now 1.70.
|
||||||
|
|
||||||
|
@@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
## 2.5.0
|
||||||
|
|
||||||
|
- Update `mio` dependency to `1`.
|
||||||
|
|
||||||
## 2.4.0
|
## 2.4.0
|
||||||
|
|
||||||
- Update `tokio-uring` dependency to `0.5`.
|
- Update `tokio-uring` dependency to `0.5`.
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "actix-server"
|
name = "actix-server"
|
||||||
version = "2.4.0"
|
version = "2.5.0"
|
||||||
authors = [
|
authors = [
|
||||||
"Nikolay Kim <fafhrd91@gmail.com>",
|
"Nikolay Kim <fafhrd91@gmail.com>",
|
||||||
"Rob Ede <robjtede@icloud.com>",
|
"Rob Ede <robjtede@icloud.com>",
|
||||||
@@ -31,7 +31,7 @@ actix-utils = "3"
|
|||||||
|
|
||||||
futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] }
|
futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] }
|
||||||
futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] }
|
futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] }
|
||||||
mio = { version = "0.8", features = ["os-poll", "net"] }
|
mio = { version = "1", features = ["os-poll", "net"] }
|
||||||
socket2 = "0.5"
|
socket2 = "0.5"
|
||||||
tokio = { version = "1.23.1", features = ["sync"] }
|
tokio = { version = "1.23.1", features = ["sync"] }
|
||||||
tracing = { version = "0.1.30", default-features = false, features = ["log"] }
|
tracing = { version = "0.1.30", default-features = false, features = ["log"] }
|
||||||
|
@@ -5,11 +5,11 @@
|
|||||||
<!-- prettier-ignore-start -->
|
<!-- prettier-ignore-start -->
|
||||||
|
|
||||||
[](https://crates.io/crates/actix-server)
|
[](https://crates.io/crates/actix-server)
|
||||||
[](https://docs.rs/actix-server/2.4.0)
|
[](https://docs.rs/actix-server/2.5.0)
|
||||||
[](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html)
|
[](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html)
|
||||||

|

|
||||||
<br />
|
<br />
|
||||||
[](https://deps.rs/crate/actix-server/2.4.0)
|
[](https://deps.rs/crate/actix-server/2.5.0)
|
||||||

|

|
||||||
[](https://discord.gg/NWpN5mmg3x)
|
[](https://discord.gg/NWpN5mmg3x)
|
||||||
|
|
||||||
|
@@ -183,11 +183,6 @@ impl ServerInner {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn run_sync(mut builder: ServerBuilder) -> io::Result<(Self, ServerEventMultiplexer)> {
|
fn run_sync(mut builder: ServerBuilder) -> io::Result<(Self, ServerEventMultiplexer)> {
|
||||||
let sockets = mem::take(&mut builder.sockets)
|
|
||||||
.into_iter()
|
|
||||||
.map(|t| (t.0, t.2))
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
// Give log information on what runtime will be used.
|
// Give log information on what runtime will be used.
|
||||||
let is_actix = actix_rt::System::try_current().is_some();
|
let is_actix = actix_rt::System::try_current().is_some();
|
||||||
let is_tokio = tokio::runtime::Handle::try_current().is_ok();
|
let is_tokio = tokio::runtime::Handle::try_current().is_ok();
|
||||||
@@ -207,6 +202,11 @@ impl ServerInner {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let sockets = mem::take(&mut builder.sockets)
|
||||||
|
.into_iter()
|
||||||
|
.map(|t| (t.0, t.2))
|
||||||
|
.collect();
|
||||||
|
|
||||||
let (waker_queue, worker_handles, accept_handle) = Accept::start(sockets, &builder)?;
|
let (waker_queue, worker_handles, accept_handle) = Accept::start(sockets, &builder)?;
|
||||||
|
|
||||||
let mux = ServerEventMultiplexer {
|
let mux = ServerEventMultiplexer {
|
||||||
|
@@ -126,7 +126,7 @@ pub(crate) enum SocketAddr {
|
|||||||
Unknown,
|
Unknown,
|
||||||
Tcp(StdSocketAddr),
|
Tcp(StdSocketAddr),
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
Uds(mio::net::SocketAddr),
|
Uds(std::os::unix::net::SocketAddr),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for SocketAddr {
|
impl fmt::Display for SocketAddr {
|
||||||
|
@@ -228,6 +228,7 @@ mod tests {
|
|||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
// pseudo-doctest for Transform trait
|
// pseudo-doctest for Transform trait
|
||||||
|
#[allow(unused)]
|
||||||
pub struct TimeoutTransform {
|
pub struct TimeoutTransform {
|
||||||
timeout: Duration,
|
timeout: Duration,
|
||||||
}
|
}
|
||||||
@@ -249,6 +250,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// pseudo-doctest for Transform trait
|
// pseudo-doctest for Transform trait
|
||||||
|
#[allow(unused)]
|
||||||
pub struct Timeout<S> {
|
pub struct Timeout<S> {
|
||||||
service: S,
|
service: S,
|
||||||
_timeout: Duration,
|
_timeout: Duration,
|
||||||
|
@@ -22,9 +22,9 @@ allowed_external_types = [
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bytes = { version = "1.2", default-features = false }
|
bytes = { version = "1.2", default-features = false }
|
||||||
serde = { version = "1.0", 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 }
|
||||||
serde_json = "1.0"
|
serde_json = "1"
|
||||||
static_assertions = "1.1"
|
static_assertions = "1.1"
|
||||||
|
@@ -9,7 +9,7 @@ coverage:
|
|||||||
default:
|
default:
|
||||||
threshold: 10% # make CI green
|
threshold: 10% # make CI green
|
||||||
|
|
||||||
ignore: # ignore codecoverage on following paths
|
ignore: # ignore code coverage on following paths
|
||||||
- "examples"
|
- "examples"
|
||||||
- ".github"
|
- ".github"
|
||||||
- "**/*.md"
|
- "**/*.md"
|
||||||
|
58
flake.lock
generated
Normal file
58
flake.lock
generated
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715865404,
|
||||||
|
"narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722651103,
|
||||||
|
"narHash": "sha256-IRiJA0NVAoyaZeKZluwfb2DoTpBAj+FLI0KfybBeDU0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "a633d89c6dc9a2a8aae11813a62d7c58b2c0cc51",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1714640452,
|
||||||
|
"narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
30
flake.nix
Normal file
30
flake.nix
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05";
|
||||||
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs@{ flake-parts, ... }:
|
||||||
|
flake-parts.lib.mkFlake { inherit inputs; } {
|
||||||
|
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||||
|
perSystem = { pkgs, config, inputs', system, lib, ... }: {
|
||||||
|
formatter = pkgs.nixpkgs-fmt;
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
packages = [
|
||||||
|
config.formatter
|
||||||
|
pkgs.fd
|
||||||
|
pkgs.just
|
||||||
|
pkgs.nodePackages.prettier
|
||||||
|
pkgs.taplo
|
||||||
|
pkgs.watchexec
|
||||||
|
] ++ lib.optional pkgs.stdenv.isDarwin [
|
||||||
|
pkgs.pkgsBuildHost.darwin.apple_sdk.frameworks.Security
|
||||||
|
pkgs.pkgsBuildHost.darwin.apple_sdk.frameworks.CoreFoundation
|
||||||
|
pkgs.pkgsBuildHost.darwin.apple_sdk.frameworks.SystemConfiguration
|
||||||
|
pkgs.pkgsBuildHost.libiconv
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
28
justfile
28
justfile
@@ -1,6 +1,23 @@
|
|||||||
_list:
|
_list:
|
||||||
@just --list
|
@just --list
|
||||||
|
|
||||||
|
# Check project.
|
||||||
|
check: && clippy
|
||||||
|
just --unstable --fmt --check
|
||||||
|
# nixpkgs-fmt --check .
|
||||||
|
fd --hidden --type=file -e=md -e=yml --exec-batch prettier --check
|
||||||
|
fd --hidden -e=toml --exec-batch taplo format --check
|
||||||
|
fd --hidden -e=toml --exec-batch taplo lint
|
||||||
|
cargo +nightly fmt -- --check
|
||||||
|
|
||||||
|
# Format project.
|
||||||
|
fmt:
|
||||||
|
just --unstable --fmt
|
||||||
|
# nixpkgs-fmt .
|
||||||
|
fd --hidden --type=file -e=md -e=yml --exec-batch prettier --write
|
||||||
|
fd --type=file --hidden -e=toml --exec-batch taplo format
|
||||||
|
cargo +nightly fmt
|
||||||
|
|
||||||
# Downgrade dev-dependencies necessary to run MSRV checks/tests.
|
# Downgrade dev-dependencies necessary to run MSRV checks/tests.
|
||||||
[private]
|
[private]
|
||||||
downgrade-for-msrv:
|
downgrade-for-msrv:
|
||||||
@@ -12,7 +29,6 @@ msrv := ```
|
|||||||
| sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/'
|
| sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/'
|
||||||
```
|
```
|
||||||
msrv_rustup := "+" + msrv
|
msrv_rustup := "+" + msrv
|
||||||
|
|
||||||
non_linux_all_features_list := ```
|
non_linux_all_features_list := ```
|
||||||
cargo metadata --format-version=1 \
|
cargo metadata --format-version=1 \
|
||||||
| jq '.packages[] | select(.source == null) | .features | keys' \
|
| jq '.packages[] | select(.source == null) | .features | keys' \
|
||||||
@@ -20,19 +36,15 @@ non_linux_all_features_list := ```
|
|||||||
--arg exclusions "tokio-uring,io-uring" \
|
--arg exclusions "tokio-uring,io-uring" \
|
||||||
'add | unique | . - ($exclusions | split(",")) | join(",")'
|
'add | unique | . - ($exclusions | split(",")) | join(",")'
|
||||||
```
|
```
|
||||||
|
all_crate_features := if os() == "linux" { "--all-features" } else { "--features='" + non_linux_all_features_list + "'" }
|
||||||
all_crate_features := if os() == "linux" {
|
|
||||||
"--all-features"
|
|
||||||
} else {
|
|
||||||
"--features='" + non_linux_all_features_list + "'"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Run Clippy over workspace.
|
# Run Clippy over workspace.
|
||||||
clippy toolchain="":
|
clippy toolchain="":
|
||||||
cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }}
|
cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }}
|
||||||
|
|
||||||
# Test workspace code.
|
# Test workspace code.
|
||||||
[macos, windows]
|
[macos]
|
||||||
|
[windows]
|
||||||
test toolchain="":
|
test toolchain="":
|
||||||
cargo {{ toolchain }} test --lib --tests --package=actix-macros
|
cargo {{ toolchain }} test --lib --tests --package=actix-macros
|
||||||
cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features
|
cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features
|
||||||
|
Reference in New Issue
Block a user