Ethr is a cross-platform network performance measurement tool written in Go that measures bandwidth, connections per second, packets per second, latency, loss, and jitter across TCP, UDP, HTTP, and HTTPS protocols.
The tool addresses the fragmentation of network measurement across multiple specialized utilities by consolidating their functionality into a single application. It operates in a client-server architecture where a server listens for incoming test connections while clients initiate various performance measurements. The tool can scale to handle hundreds or thousands of concurrent connections and supports multiple clients communicating with a single server simultaneously, distinguishing it from some alternatives in its ability to stress-test with high connection counts.
Ethr suits teams that need comprehensive network diagnostics across Windows, Linux, and Unix systems without maintaining separate tools for different measurement types. It combines capabilities similar to iPerf3 for bandwidth testing, latte and sockperf for latency measurements, and tools like ntttcp and psping, offering them all in one native binary. The README notes that iPerf3 provides more granular options for bandwidth testing such as throttled testing, while Ethr emphasizes simplicity and multi-protocol support in a single tool. The project is natively cross-platform through Go rather than relying on abstraction layers like Cygwin, which can limit functionality on Windows. Some measurements like ICMP-based tests require elevated privileges or firewall configuration depending on the operating system.
Development activity shows consistent maintenance with regular updates to the codebase. The project accepts contributions and has documented plans to expand protocol support and measurement capabilities beyond its current feature set. Build infrastructure is in place with automated testing, and the tool is distributed through multiple channels including direct binary releases, Docker images, package managers, and source compilation.