On this page
Overview
iperf3 actively measures achievable bandwidth on IP networks using a client/server model. It can exercise TCP, UDP, and SCTP with configurable timing, protocol, and buffer parameters and report throughput, bitrate, loss, and related metrics. JSON output, zero-copy options, and a library API support both interactive diagnosis and automated measurement.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Measure TCP, UDP, and SCTP throughput between controlled endpoints
iperf3 generates test traffic between endpoints and reports measured throughput or bitrate, loss, and related results while allowing protocol and buffer parameters to be tuned.
Sources: [1]
Integrate JSON output and optional zero-copy modes into measurement workflows
The CLI supports JSON output and explicit optimization options such as zero-copy and CPU affinity, which are useful for repeatable automation.
Sources: [1]
Use iperf3 as a standalone tool or through its library implementation
iperf3 was rewritten with a smaller codebase and a library form of the functionality so network measurement can also be embedded in other programs.
Sources: [1]
Best fit
Fits repeatable comparisons of LAN/WAN bandwidth, loss, and tuning changes
It is useful when network paths, hosts, protocols, and stream parameters can be controlled and performance changes need to be measured before and after tuning.
Sources: [1]
Before adoption
iperf3 is not protocol-compatible with iperf2
iperf3 is a from-scratch implementation and is not backward compatible with the original iperf/iperf2, so both endpoints need the same tool family.
Sources: [1]
Control generated traffic on production networks
Active tests create real network load. Bound UDP bitrate, parallel streams, duration, and reverse-direction tests and coordinate their impact on shared or metered links.
Sources: [1]
3.22 fixes several 2026 security issues
Version 3.22 fixes a remote use-after-free, heap buffer overflows, and denial-of-service issues among other security defects, so internet-reachable or shared servers should not remain on older builds.
Sources: [3]
Official sources
- [1]iperf3 3.22 README(2026-10-04)
- [2]iperf3 3.22 configure metadata(2026-10-04)
- [3]iperf3 3.22 release(2026-10-04)
- [4]iperf3 license(2026-10-04)
Supplemental curator note
iperf3 generates traffic as an active measurement tool. On production networks, bound test duration, parallel streams, and UDP bitrate and account for impact on other traffic. Version 3.22 fixes multiple memory-safety and denial-of-service CVEs, so avoid leaving older servers or clients in service.
Try it in 3 steps
- 1
Fetch the iperf3 3.22 release source
Download and extract stable 3.22, which contains multiple security fixes.
curl -L -o iperf-3.22.tar.gz https://github.com/esnet/iperf/releases/download/3.22/iperf-3.22.tar.gz && tar -xzf iperf-3.22.tar.gz - 2
Configure the local build
Generate build settings after detecting compiler and platform capabilities without starting a network test.
cd iperf-3.22 && ./configure - 3
Build the binary and print its version
Validate the 3.22 binary without generating client/server test traffic.
make -C iperf-3.22 -j2 && ./iperf-3.22/src/iperf3 --version
Growth
Growth trends · Last 30 days
8,796 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 19
- Open PRs
- 82
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- iperf3
- Stars
- 8,796
- Forks
- 1,455
- Watchers
- 226
- Open issues
- 162
- Contributors
- 151
- Owner type
- Organization
- Primary language
- C
- License
- BSD-3-Clause
- Repository last updated
- Oct 2, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- curl43,016 Stars
1 shared tag(s) · 2 shared category(s) · Same language
share URL-based transfer capabilities between a CLI and libcurl
C - WireGuard Tools721 Stars
1 shared tag(s) · 2 shared category(s) · Same language
Configure WireGuard peers and keys with
Cwgand usewg-quickfor simple addresses, routes, and DNS setup - FFmpeg64,734 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Combine codecs, containers, filters, and protocols through CLIs and libraries to transform and inspect media
C - Git63,525 Stars
1 shared tag(s) · 1 shared category(s) · Same language
keep complete history locally and synchronize repositories as distributed peers
C - tmux49,629 Stars
1 shared tag(s) · 1 shared category(s) · Same language
manage persistent terminal sessions, windows, and panes
C - jq35,737 Stars
1 shared tag(s) · 1 shared category(s) · Same language
slice, filter, transform, and aggregate JSON inside shell pipelines
C
Report incorrect information
Tell us if any listing information is incorrect or outdated.