{"id":13575258,"url":"https://github.com/userdocs/iperf3-static","last_synced_at":"2025-04-07T07:11:05.384Z","repository":{"id":41050154,"uuid":"236088430","full_name":"userdocs/iperf3-static","owner":"userdocs","description":"A static build of iperf3 to do network testing on remote servers.","archived":false,"fork":false,"pushed_at":"2025-02-01T02:04:06.000Z","size":541,"stargazers_count":101,"open_issues_count":0,"forks_count":11,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-27T11:22:29.957Z","etag":null,"topics":["cygwin","docker","iperf-server","iperf3","iperf3-linux-builds","iperf3-macosx-builds","iperf3-static","iperf3-windows-builds","linux","macos","static","windows","windows-10","windows-11"],"latest_commit_sha":null,"homepage":"","language":"Batchfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/userdocs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-24T21:42:13.000Z","updated_at":"2025-03-09T08:31:03.000Z","dependencies_parsed_at":"2025-02-01T15:45:34.564Z","dependency_job_id":"27cf248e-e111-472d-a458-f0b2dd81477f","html_url":"https://github.com/userdocs/iperf3-static","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fiperf3-static","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fiperf3-static/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fiperf3-static/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/userdocs%2Fiperf3-static/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/userdocs","download_url":"https://codeload.github.com/userdocs/iperf3-static/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247608151,"owners_count":20965952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cygwin","docker","iperf-server","iperf3","iperf3-linux-builds","iperf3-macosx-builds","iperf3-static","iperf3-windows-builds","linux","macos","static","windows","windows-10","windows-11"],"created_at":"2024-08-01T15:00:59.455Z","updated_at":"2025-04-07T07:11:05.364Z","avatar_url":"https://github.com/userdocs.png","language":"Batchfile","readme":"# iperf3 static builds\n\n- iperf3 windows builds\n- iperf3 linux builds\n- iperf3 macosx builds\n\nThe only resource providing multiplatform distro independent iperf3 latest releases that has a 100% transparent build process from end to end. Complete accountability and verified chain of custody. No hidden parts.\n\n- [Chain of custody and build provenance](https://github.com/userdocs/iperf3-static?tab=readme-ov-file#gh-attestation-verify) - easily verify the archive or binary was created here.\n- [Transparent build process from source code to binary](https://github.com/userdocs/iperf3-static/actions) - source code \u003e workflow \u003e verification \u003e release.\n- [Virustotal scan and details during the build process](https://github.com/userdocs/iperf3-static?tab=readme-ov-file#gh-attestation-verify) - scanned before release.\n- [Zizmor workflow auditing](https://github.com/woodruffw/zizmor) - helping ensure the worklow itself is not poisoned.\n- Powerful build system with ability to specify repo and branches to easily build patches or custom builds.\n\n![](.github/assets/images/inputs.png)\n\n## Build Platforms\n\n- [Alpine linux](https://alpinelinux.org) edge using [qemu emulation](https://www.qemu.org)\n- Windows on [Github Actions runners](https://github.com/actions/runner-images?tab=readme-ov-file#available-images) for x86_64 using a custom [Cywgin installer script](https://github.com/userdocs/iperf3-static/blob/master/cygwin-installer.cmd)\n- MacOS on [Github Actions runners](https://github.com/actions/runner-images?tab=readme-ov-file#available-images) for amd64 (mmacos-13) and arm64 (macos-14) with static openssl and iperf libraries.\n\n## Available architectures\n\nLinux:\n\n- Arch: `amd64` `arm32v6` `arm32v7` `arm64v8` `i386` `ppc64le` `riscv64` `s390x`\n- Docker: yes\n- Static binaries: yes\n- Openssl latest release - https://github.com/openssl/openssl/releases/latest\n\nWindows:\n\n- Arch: `amd64`\n- Docker: no\n- Static binaries: yes\n- Openssl 3.1.x - Releases after this don't work with cygwin / iperf3 for windows builds.\n\nMacOS:\n\n- Arch: `amd64` `arm64`\n- Docker: no\n- Static binaries: yes\n- Openssl@3 - https://formulae.brew.sh/formula/openssl@3\n\n\u003e [!NOTE]\n\u003e Windows and MacOS binaries are not fully static in terms of their dependency and `cygwin1.dll` (Windows) `libSystem.B.dylib` (MasOS).\n\u003e They are statically linked with `libcrypo.a` `libssl.a` (openssl) and `iperf3.a` (iperf3) so there should be no other system dependency required to run them on the target hosts.\n\u003e\n\u003e On Windows openssl is built from Github source to get static libs and on MacOS we get them from the brew cellar installation of `openssl@3`\n\n## Download - Static Binaries\n\nStatic binaries for Linux and Windows are available here: https://github.com/userdocs/iperf3-static/releases/latest\n\nExample:\n\n```\ncurl -sLo- iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-amd64\nchmod +x iperf3\niperf3 --version\n```\n\n## Download - Docker\n\nMultiarch Docker images are available via https://github.com/users/userdocs/packages/container/package/iperf3-static\n\nExample:\n\n```bash\ndocker pull ghcr.io/userdocs/iperf3-static:latest\n```\n\nTo used the image dynamically\n\n```bash\ndocker run -it ghcr.io/userdocs/iperf3-static:latest iperf3 --version\n```\n\n## Alpine multiarch info\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\n| Alpine Arch | Docker platform arch |         Source of Build Dockers         |    ghcr.io image    |\n| :---------: | :------------------: | :-------------------------------------: | :-----------------: |\n|    armhf    |     linux/arm/v6     | https://hub.docker.com/r/arm32v6/alpine | arm32v6/alpine:edge |\n|    armv7    |     linux/arm/v7     | https://hub.docker.com/r/arm32v7/alpine | arm32v7/alpine:edge |\n|   aarch64   |     linux/arm64      | https://hub.docker.com/r/arm64v8/alpine | arm64v8/alpine:edge |\n|   ppc64le   |    linux/ppc64le     | https://hub.docker.com/r/ppc64le/alpine | ppc64le/alpine:edge |\n|    s390x    |     linux/s390x      |  https://hub.docker.com/r/s390x/alpine  |  s390x/alpine:edge  |\n|   riscv64   |    linux/riscv64     | https://hub.docker.com/r/riscv64/alpine | riscv64/alpine:edge |\n|     x86     |      linux/i386      |  https://hub.docker.com/r/i386/alpine   |  i386/alpine:edge   |\n|   x86_64    |     linux/amd64      |  https://hub.docker.com/r/amd64/alpine  |  amd64/alpine:edge  |\n\n\u003c/details\u003e\n\n## Windows x86_64 info\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\nStatic Cygwin builds created via cygwin64 using this custom installer\n\nhttps://github.com/userdocs/iperf3-static/blob/master/cygwin-installer.cmd\n\n\u003c/details\u003e\n\n## Generic Build dependencies\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\n```\napk add build-base pkgconf autoconf automake curl libtool git perl openssl-libs-static openssl-dev linux-headers\n```\n\n#### Debian linux\n\n```\napt install -y build-essential pkg-config automake libtool libssl-dev git perl\n```\n\n#### Cygwin packages\n\nWithout openssl\n\n```bash\nautomake,gcc-core,gcc-g++,git,libtool,make,pkg-config\n```\n\nWith openssl\n\n```bash\nautomake,gcc-core,gcc-g++,git,libtool,make,pkg-config,libssl-devel,zlib-devel\n```\n\n### Generic Build Instructions\n\nClone the git repo - linux + Cygwin\n\n```bash\ngit clone https://github.com/esnet/iperf.git ~/iperf3 \u0026\u0026 cd ~/iperf3\n```\n\nBootstrap - If you cloned the repo\n\n```bash\n./bootstrap.sh\n```\n\nConfigure - linux + Cygwin\n\nNote: Cygwin requires requires compiling openssl and zlib static libs to link statically. Otherwise you compile dynamically\n\nStatic\n\n```bash\n./configure --disable-shared --enable-static-bin --prefix=$HOME\n```\n\nDynamic\n\n```bash\n./configure --prefix=$HOME\n```\n\nCygwin openssl requires compiling openssl and zlib\n\nBuild - linux + Cygwin\n\n```\nmake -j$(nproc)\nmake install\n```\n\n### Check the linking was done properly\n\n```\nldd ~/bin/iperf3\n```\n\n### Version\n\nUse this command to check the version.\n\n```\n~/bin/iperf3 -v\n```\n\nWill show something like this.\n\n```\niperf 3.10.1 (cJSON 1.7.13)\nOptional features available: CPU affinity setting, IPv6 flow label, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing, authentication, bind to device, support IPv4 don't fragment\n```\n\n### Use the static binaries from this repo\n\nDownload and install to the bin directory of your local user (for root this may not be in the `$PATH`)\n\nPick the platform URL you need:\n\ni386 / x86\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-i386\nchmod 700 ~/bin/iperf3\n```\n\namd64\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-amd64\nchmod 700 ~/bin/iperf3\n```\n\narm32v6\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-arm32v6\nchmod 700 ~/bin/iperf3\n```\n\narm32v7\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-arm32v7\nchmod 700 ~/bin/iperf3\n```\n\naarch64 / arm64\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-arm64v8\nchmod 700 ~/bin/iperf3\n```\n\nppc64le\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-ppc64le\nchmod 700 ~/bin/iperf3\n```\n\ns390x\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-s390x\nchmod 700 ~/bin/iperf3\n```\n\nWindows builds required being bundled with Cygwin dlls to work so these are not single static binaries. They have a directory structure like this.\n\n```\niperf3.exe\ncygwin1.dll\n```\n\nWindows x64 no openssl\n\nhttps://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-amd64-win.zip\n\nWindows x64 with openssl\n\nhttps://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-amd64-win-openssl.zip\n\nCheck the version:\n\n```\n~/bin/iperf3 -v\n```\n\n\u003c/details\u003e\n\n## MacOS amd64 and arm64 info\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\namd64 macos-13 intel\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-amd64-osx-13\nchmod 700 ~/bin/iperf3\n```\n\narm64 macos-14 apple M1\n\n```bash\nmkdir -p ~/bin \u0026\u0026 source ~/.profile\nwget -qO ~/bin/iperf3 https://github.com/userdocs/iperf3-static/releases/latest/download/iperf3-arm64-osx-14\nchmod 700 ~/bin/iperf3\n```\n\n\u003c/details\u003e\n\n## gh attestation verify\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\nBinaries built from the release of `3.17.1+` use [actions/attest-build-provenance](https://github.com/actions/attest-build-provenance)\n\nVerify the integrity and provenance of an artifact using its associated cryptographically signed attestations.\n\nhttps://cli.github.com/manual/gh_attestation_verify\n\nFor example:\n\n```bash\ngh attestation verify iperf3-amd64 -o userdocs\n```\n\nWill give you this result for the `release-5.0.0_v2.0.10` revision `1` binary.\n\n```bash\nLoaded digest sha256:84f9851d0647d3d618c66d64cac10ed1eb37583b3aaf3bb0baac88bf446fb10a for file://iperf3-amd64\nLoaded 6 attestations from GitHub API\n✓ Verification succeeded!\n\nsha256:84f9851d0647d3d618c66d64cac10ed1eb37583b3aaf3bb0baac88bf446fb10a was attested by:\nREPO                    PREDICATE_TYPE                  WORKFLOW\nuserdocs/iperf3-static  https://slsa.dev/provenance/v1  .github/workflows/alpine_multi.yml@refs/heads/master\n```\n\n\u003c/details\u003e\n\n## Virustotal scanning\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\nAll binaries and dlls are scanned by virus total and the results uploaded using this action\n\nhttps://github.com/crazy-max/ghaction-virustotal\n\nThe results url is uploaded to the release body and you can see them here https://github.com/userdocs/iperf3-static/releases/latest\n\n\u003c/details\u003e\n\n### Credits and acknowledgements\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\nOther contributions have helped inspire the creation of a GitHub action for a Windows build and release.\n\n[www.neowin.net](https://www.neowin.net/forum/topic/1234695-iperf-313-windows-build) via [budman](https://www.neowin.net/forum/profile/14624-budman/)\n\nhttps://github.com/ar51an/iperf3-win-builds via [cryptanalyst](https://www.neowin.net/forum/profile/170754-cryptanalyst/)\n\n\u003c/details\u003e\n\n## Forking and using this repo\n\n\u003cdetails closed\u003e\n\u003csummary\u003eExpand for details\u003c/summary\u003e\n\nStep 1: Fork the repo: https://github.com/userdocs/iperf3-static/fork\n\nStep 2: Under the repo `/settings/secrets/actions` you will need to set a the `VT_API_KEY` using your\n\nYou can find it here if you have created an account: https://www.virustotal.com/gui/my-apikey\n\nStep 3: Under the Actions tab, enable workflows. The `check_new_release.yml` defaults to a scheduled check but can be run manually.\n\nhttps://github.com/userdocs/iperf3-static/blob/0571ce60cba18d2b67303b71d31009f83bae36c8/.github/workflows/check_new_release.yml#L11-L12\n\n\u003c/details\u003e\n\n## Test Servers\n\nhttps://github.com/R0GGER/public-iperf3-servers?tab=readme-ov-file#servers-per-continent\n\nLinux one liner for an example output of `./iperf3 -c speedtest.ip-projects.de` for a random Europe server\n\n```shell\n./$(curl -sL https://db.iperf3serverlist.net/api/v1/db/public/shared-view/b111407c-43c4-48af-a828-301b698064a3/rows/export/csv | awk -F, 'NR\u003e1 { print $1 }' | shuf -n1)\n```\n","funding_links":[],"categories":["Batchfile"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserdocs%2Fiperf3-static","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuserdocs%2Fiperf3-static","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuserdocs%2Fiperf3-static/lists"}