From 4b0c350d5196ada19440bc6ac8d6505dd14dc79a Mon Sep 17 00:00:00 2001 From: Philip Taron Date: Wed, 17 Dec 2025 11:29:24 -0800 Subject: [PATCH] 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 `) * 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 `) * 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. --- pkgs/by-name/et/ethr/package.nix | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 pkgs/by-name/et/ethr/package.nix diff --git a/pkgs/by-name/et/ethr/package.nix b/pkgs/by-name/et/ethr/package.nix new file mode 100644 index 000000000000..d0dfd5c30f5b --- /dev/null +++ b/pkgs/by-name/et/ethr/package.nix @@ -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"; + }; +}