ethr: init at 1.0.0-unstable-2025-12-10

Ethr is a comprehensive network performance measurement tool that operates in three distinct modes:

*   **Server Mode** (`-s`)
    *   Runs Ethr as a server listener to accept incoming connections for performance tests.
    *   Supports binding to specific IPs and ports.
    *   Includes a Text UI (`-ui`) option and an option to exit after handling a single client connection (similar to iPerf3 behavior) for precise synchronization.

*   **Client Mode** (`-c <server>`)
    *   Connects to an Ethr server to perform comprehensive performance benchmarks.
    *   **Supported Protocols:** TCP, UDP, HTTP, HTTPS, and ICMP.
    *   **Measurement Capabilities:**
        *   **Bandwidth:** Measure throughput with options for throttling (`-b`), buffer length (`-l`), and reverse direction (`-r`).
        *   **Connections/s:** Benchmark connection establishment rates.
        *   **Packets/s:** Measure packet processing rates.
        *   **Latency & Loss:** Detailed analysis of latency, packet loss, and jitter.
    *   **Diagnostics:** Supports TraceRoute and MyTraceRoute (MTR).
    *   Supports multi-threaded parallel sessions (`-n`).

*   **External Mode** (`-x <destination>`)
    *   Allows Ethr to test against non-Ethr endpoints (standard URLs or Host:Port combinations).
    *   **Use Cases:** Testing connectivity against public websites or standard services (e.g., `www.microsoft.com:443`).
    *   **Supported Tests:**
        *   **TCP/ICMP:** Connection establishment rates and connectivity checks.
        *   **Ping:** Loss and latency measurements.
        *   **TraceRoute:** Standard and MTR-style path analysis.
This commit is contained in:
Philip Taron
2025-12-19 17:11:25 -08:00
parent cdf2d5b10d
commit 4b0c350d51
+33
View File
@@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule {
pname = "ethr";
version = "1.0.0-unstable-2025-12-10";
src = fetchFromGitHub {
owner = "microsoft";
repo = "ethr";
rev = "86e07049d11357f69da89317d55f11bed62e0007";
hash = "sha256-lkhqPq2EDI3J8jiNx0Gygf8fDZvtZ2Pw3rRSt4HVBq8=";
};
vendorHash = "sha256-UHZNe6vlqdYaHzt2IZ5HTQxqR0sf8m9Lfo5tXvpiFlg=";
# Strip symbol table and DWARF debug info to reduce binary size
ldflags = [
"-s"
"-w"
];
meta = {
description = "Comprehensive Network Measurement Tool for TCP, UDP & ICMP";
homepage = "https://github.com/microsoft/ethr";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.philiptaron ];
mainProgram = "ethr";
};
}