explaingit

microsoft/ethr

5,862GoAudience · ops devopsComplexity · 2/5LicenseSetup · easy

TLDR

A cross-platform network performance tester from Microsoft that measures bandwidth, latency, packet loss, and connection speed between two machines over TCP, UDP, HTTP, or HTTPS, single binary, no install needed.

Mindmap

mindmap
  root((ethr))
    What it does
      Network performance test
      Cross-platform tool
      Combines multiple tools
    Protocols
      TCP
      UDP
      HTTP and HTTPS
    Metrics Measured
      Bandwidth
      Latency
      Packet loss and jitter
      Connections per second
    Audience
      DevOps engineers
      Network admins
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Measure the maximum bandwidth between two servers before migrating a workload to the cloud

USE CASE 2

Stress test a server by opening over 1000 simultaneous TCP connections and recording throughput

USE CASE 3

Measure network latency between a Windows machine and a Linux server using a single tool on both sides

USE CASE 4

Identify UDP packet loss and jitter on a connection between two data center nodes

Tech stack

Go

Getting it running

Difficulty · easy Time to first run · 5min
Free to use for any purpose, including commercially, as long as you keep the copyright notice.

In plain English

Ethr is a network performance testing tool from Microsoft that measures how fast and reliably two computers can communicate. You run it on two machines, one acting as a server and one as a client, and it reports metrics like bandwidth, the number of connections per second, packets per second, latency, packet loss, and jitter. The tool works across Windows, Linux, and macOS, and it supports multiple network protocols: TCP, UDP, HTTP, and HTTPS. This cross-platform support is a deliberate goal, since most similar tools work well on one operating system but not another. Ethr is written in Go, which makes it straightforward to compile and run natively on all three platforms without extra layers. In terms of what it measures, Ethr is broader than most individual tools. Bandwidth testing is similar to a popular tool called iPerf3, but Ethr also supports many simultaneous connections, up to 1024 or more, which is useful for stress testing servers. For latency, it fills a similar role to tools called latte on Windows and sockperf on Linux. The project's stated aim is to combine what normally requires several different tools into one. Installation is a single download from the releases page. Binaries are available for Linux, Windows, and macOS. You can also build from source or run it inside Docker. The README is detailed and includes usage examples. The project is open source under the MIT license and was created by Microsoft, though the repository notes it takes inspiration from existing community tools.

Copy-paste prompts

Prompt 1
Show me the Ethr commands to start a server on machine A and run a bandwidth test from machine B over TCP
Prompt 2
How do I use Ethr to measure UDP packet loss and jitter between two servers in different data centers?
Prompt 3
Run an Ethr latency test between a Windows client and a Linux server and export the results to a file
Prompt 4
What Ethr command opens 512 simultaneous TCP connections to stress test a server's throughput capacity?
Open on GitHub → Explain another repo

← microsoft on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.