CI / cargo fmt (push) Has been cancelled
CI / cargo clippy (macos-latest) (push) Has been cancelled
CI / cargo clippy (ubuntu-latest) (push) Has been cancelled
CI / cargo clippy (windows-latest) (push) Has been cancelled
CI / cargo test (macos-latest) (push) Has been cancelled
CI / cargo test (ubuntu-latest) (push) Has been cancelled
CI / cargo test (windows-latest) (push) Has been cancelled
CI / cargo build (macos-latest) (push) Has been cancelled
CI / cargo build (ubuntu-latest) (push) Has been cancelled
CI / cargo build (windows-latest) (push) Has been cancelled
CI / cargo build --release (macos-latest) (push) Has been cancelled
CI / cargo build --release (ubuntu-latest) (push) Has been cancelled
CI / cargo build --release (windows-latest) (push) Has been cancelled
CI / CLI smoke (macos-latest) (push) Has been cancelled
CI / CLI smoke (ubuntu-latest) (push) Has been cancelled
CI / CLI smoke (windows-latest) (push) Has been cancelled
CI / Minimal E2E (macos-latest) (push) Has been cancelled
CI / Minimal E2E (ubuntu-latest) (push) Has been cancelled
CI / Minimal E2E (windows-latest) (push) Has been cancelled
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
1.5 KiB
1.5 KiB
Tooling
Build system
Cargo is the sole build tool. No custom build scripts or Makefiles are used.
cargo build— debug buildcargo build --release— optimized release buildcargo check— fast type-checking
Linting and formatting
cargo fmt --check— enforces rustfmt formattingcargo clippy --all-targets -- -D warnings— runs clippy on all targets with warnings as errors
CI/CD
GitHub Actions runs the full matrix on every push and PR:
| Job | Platforms | Purpose |
|---|---|---|
fmt |
Ubuntu | Format check |
clippy |
Linux, macOS, Windows | Lint check |
test |
Linux, macOS, Windows | Unit and inline tests |
build |
Linux, macOS, Windows | Debug build |
release-build |
Linux, macOS, Windows | Release build + artifact upload |
smoke |
Linux, macOS, Windows | CLI smoke tests (--help, version, invalid command/port) |
e2e-minimal |
Linux, macOS, Windows | Full end-to-end flow: generate, listen, connect, SOCKS5, curl |
The E2E job uses cargo run --release -- for OS-neutral binary invocation and includes cross-platform cleanup helpers (kill_process, kill_by_port) invoked via trap cleanup EXIT.
Dependencies
Dependencies are managed in Cargo.toml. Notable choices:
tokiowithfullfeatures for async runtimerustlswithringfor TLS (no OpenSSL)rcgenfor certificate generationclapwithderivefor CLI parsingtracingandtracing-subscriberfor structured logging