shadowsocks-rust 1.24.0

shadowsocks is a fast tunnel proxy that helps you bypass firewalls.
Documentation
name: Build & Test

on: [push, pull_request]

env:
  CARGO_TERM_COLOR: always
  RUST_LOG: "trace"

jobs:
  build-and-test:
    strategy:
      matrix:
        platform:
          - ubuntu-latest
          - windows-latest
          - macos-latest
    runs-on: ${{ matrix.platform }}

    steps:
      - if: ${{ matrix.platform == 'ubuntu-latest' }}
        name: Free Disk Space (Ubuntu)
        uses: jlumbroso/free-disk-space@main
      - uses: actions/checkout@v6
      - uses: Swatinem/rust-cache@v2
      - if: ${{ runner.os == 'Windows' }}
        uses: ilammy/setup-nasm@v1
      - if: ${{ matrix.platform == 'ubuntu-latest' }}
        name: Install LLVM and Clang
        run: sudo apt update && sudo apt install -y clang
      - name: Install Rust
        run: |
          rustup set profile minimal
          rustup toolchain install stable
          rustup default stable
          rustup override set stable
      - name: Build & Test (Default)
        run: cargo test --verbose --no-fail-fast
      - name: Build & Test (full)
        run: cargo test --features "full" --verbose --no-fail-fast
      - name: Build & Test (full-extra)
        run: cargo test --features "full-extra" --verbose --no-fail-fast
      - name: Build & Test (Default) - shadowsocks
        run: cargo test --manifest-path ./crates/shadowsocks/Cargo.toml --verbose --no-fail-fast
      - name: Build & Test (Default) - shadowsocks-service
        run: cargo test --manifest-path ./crates/shadowsocks-service/Cargo.toml --verbose --no-fail-fast
      - name: Build & Test (--no-default-features)
        run: cargo test --verbose --no-default-features --no-fail-fast
      - name: Build & Test (--no-default-features) - shadowsocks
        run: cargo test --manifest-path ./crates/shadowsocks/Cargo.toml --verbose --no-default-features --no-fail-fast
      - name: Build & Test (--no-default-features) - shadowsocks-service
        run: cargo test --manifest-path ./crates/shadowsocks-service/Cargo.toml --verbose --no-default-features --no-fail-fast
      - name: Build with All Features Enabled (Unix)
        if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }}
        run: cargo build --verbose --features "full-extra local-flow-stat utility-url-outline"
      - name: Build with All Features Enabled (Windows)
        if: ${{ runner.os == 'Windows' }}
        run: cargo build --verbose --features "full-extra local-flow-stat utility-url-outline winservice"
      - name: Build with All Features Enabled - shadowsocks
        run: cargo build --manifest-path ./crates/shadowsocks/Cargo.toml --verbose --features "stream-cipher aead-cipher-extra aead-cipher-2022 aead-cipher-2022-extra security-replay-attack-detect"