Files
rustunnel/droid-wiki/how-to-contribute/tooling.md
T
rootandfactory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> 0166fb6511
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
docs: add comprehensive project wiki for v1.0
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2026-06-04 14:07:55 -06:00

41 lines
1.5 KiB
Markdown

# Tooling
## Build system
Cargo is the sole build tool. No custom build scripts or Makefiles are used.
- `cargo build` — debug build
- `cargo build --release` — optimized release build
- `cargo check` — fast type-checking
## Linting and formatting
- `cargo fmt --check` — enforces rustfmt formatting
- `cargo 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:
- `tokio` with `full` features for async runtime
- `rustls` with `ring` for TLS (no OpenSSL)
- `rcgen` for certificate generation
- `clap` with `derive` for CLI parsing
- `tracing` and `tracing-subscriber` for structured logging