Skip to content

Development

Ken Tobias edited this page Jun 19, 2026 · 15 revisions

Development

This page covers compiling, testing, and benchmarking the etr codebase.

Prerequisites

To compile and run all tests locally, you need:

  • The Rust toolchain (rustup.rs)
  • just (command runner)
  • tmux (required for local end-to-end tests)
  • OpenSSH client/server with passwordless login to localhost configured (required for E2E tests)

Building

# Debug build
cargo build

# Release build
cargo build --release

Running Tests

We maintain a comprehensive suite of static checks, unit tests, and automated end-to-end tests:

# Run formatting and clippy lints
just check

# Run unit and integration tests (67 tests)
just test

# Run local end-to-end session and reconnect tests (launches etr in tmux)
just e2e-local

# Run throughput/memory stress tests
just stress-local

Running Benchmarks

We use criterion to benchmark core performance-sensitive areas of the codebase, including TLS certificate generation, connection handshakes, round-trip latency, and throughput.

# Run the benchmark suite
just bench

Clone this wiki locally