speedo 0.2.11

Network speed test tool and file downloader built in Rust
# speedo

Network speed test tool and file downloader. Built in rust, doesn't need curl, wget, or system ssl libs.

## Installation

### From crates.io

```bash
cargo install speedo
```

### Using cargo-binstall

```bash
cargo binstall speedo
```

### From source

```bash
cargo install --git https://github.com/kautau/speedo
```

## SYNOPSIS

```
speedo [URL]
speedo [-i|--interactive] [-n|--non-interactive]
speedo --help
speedo --version
```

## DESCRIPTION

speedo downloads a test file and reports the transfer speed. By default it runs non-interactively against Cloudflare's CDN. With the -i flag, it displays a menu for selecting different test servers.

If a URL is provided as an argument, the file is downloaded to the current directory and the speed is reported.

Command-line flags override the config file setting.

## OPTIONS

**-i, --interactive**
    Show server selection menu

**-n, --non-interactive**
    Run quick test (override config)

**-h, --help**
    Display help text

**-V, --version**
    Display version

## ARGUMENTS

**URL**
    URL to download (saves file to current directory)

## CONFIGURATION

Configuration is read from the first file found:
- ./speedo.toml
- ./.speedo.toml
- ~/.speedo.toml

### Example Configuration

```toml
# Default mode when no flags given (default: false)
interactive = false

# User agent string for requests
user_agent = "Mozilla/5.0"

# Additional test servers
[[custom_servers]]
name = "My Server"
url = "https://example.com/testfile.bin"
```

See speedo.toml.example for details.

## EXAMPLES

Run a quick speed test (default server):
```
speedo
```

Download a specific file:
```
speedo https://example.com/testfile.zip
```

Show interactive menu:
```
speedo -i
```

Force non-interactive mode (override config):
```
speedo -n
```

## OUTPUT

Non-interactive mode prints only the speed:
```
44.60 MB/s  (374.14 Mbps)
```

When downloading a URL, the saved filename is also printed:
```
44.60 MB/s  (374.14 Mbps)
Saved: testfile.zip
```

Interactive mode displays:
- HTTP status code
- Connection time
- Time to first byte (TTFB)
- Total transfer time
- File size
- Transfer speed

## SERVERS

Pre-configured test servers:
- Cloudflare (CDN) - default
- Tele2 (Global)
- Hetzner (Nuremberg, Falkenstein, Helsinki, Ashburn, Hillsboro, Singapore)
- Vultr (New Jersey, Silicon Valley, Singapore)

## BUILDING

```
cargo build --release
```

## FILES

- speedo.toml - configuration file
- ~/.speedo.toml - user configuration file

## SEE ALSO

curl(1), wget(1)