Files
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

1.7 KiB

Deployment

rustunnel is deployed as a single static binary. There are no containers, orchestrators, or external services required.

Release builds

CI builds release artifacts on Linux, macOS, and Windows:

cargo build --release

The resulting binary is uploaded as a GitHub Actions artifact with a 7-day retention.

Cross-platform CI

The .github/workflows/ci.yml runs on ubuntu-latest, windows-latest, and macos-latest:

  1. cargo fmt — format check
  2. cargo clippy — lint check
  3. cargo test — unit and inline tests
  4. cargo build — debug build
  5. cargo build --release — release build with artifact upload
  6. CLI smoke tests — --help, version, invalid command/port handling
  7. Minimal E2E — generate, listen, connect, SOCKS5, curl

E2E test flow

The E2E job uses cargo run --release -- for OS-neutral invocation and performs:

  1. Generate credentials to a temp directory
  2. Start a Python HTTP server as the target
  3. Start rustunnel listen in the background
  4. Start rustunnel connect in the background
  5. Wait for services to start
  6. curl through the SOCKS5 proxy and assert HTTP 200 + expected body content
  7. Cleanup via trap cleanup EXIT with PID-based and port-based killing

No production deployment guidance

rustunnel is explicitly a lab and development tool. It does not include:

  • Container images or Dockerfiles
  • Kubernetes manifests
  • Systemd service files
  • Log rotation or monitoring infrastructure

For production tunneling, consider established tools like WireGuard, OpenVPN, or SSH.

Key source files

File Purpose
.github/workflows/ci.yml CI matrix: fmt, clippy, test, build, smoke, E2E