Skip to main content
Wireblast puts real Ethernet frames on a real NIC, as fast as the hardware will take them, and tells you exactly what it sent. It’s a single static Go binary. Run sudo wireblast with no arguments and a wizard walks you through picking an interface, a traffic pattern and a rate. Thirty seconds later you have numbers. On a 100G Mellanox link it fills the pipe at every frame size, including 138 million packets a second of the smallest frames, from one process. The performance page has the measured numbers.

The gap it fills

You know this moment. iperf isn’t cutting it any more. You need 64-byte frames, or ten thousand distinct flows, or a capture replayed back onto the wire. But you’re nowhere near justifying a dedicated traffic-generation appliance, and you’d rather not spend a week learning DPDK. That’s the gap. Wireblast lives in it.

iperf / netperf

TCP and UDP throughput between two hosts. Easy, but it can’t shape frames, flows or rates the way a network test needs.

Wireblast

Line-rate frames you fully control, from a Linux box you already have. No cgo, no DPDK, no kernel modules.

Test appliances

Hardware timestamping, RFC 2544, latency histograms, certification-grade reporting. Also a purchase order.

What it looks like

A live run, not a mockup:
Everything on that screen is also a command-line flag, so anything you work out in the wizard can be pasted into a script.

Start here

Install

One binary, a couple of requirements, and the memlock setting that trips up first runs.

Quickstart

Traffic on the wire in about a minute. No spare NIC needed.

Common tasks

Copy-paste recipes: benchmark a link, run IMIX, replay a capture, stress a firewall.

FAQ

Short answers to the things people ask first.

What it does

Five traffic patterns

UDP, stateless TCP SYN, IMIX, raw Ethernet, and PCAP replay.

Deterministic flows

The same config always produces the same tuples, in the same order, whatever the queue count.

100G line rate

Fills a 100G link at every frame size, measured on real Mellanox hardware.

Honest numbers

L1 and L2 bit rates, clearly labelled, plus why your monitoring tool reads slightly lower.

Safe on a live box

Transmit-only by default. Nothing is taken away from the kernel unless you ask for it.

When not to use it

Worth knowing before you invest an afternoon.
  • You need latency numbers. Wireblast counts packets and bytes. It doesn’t measure latency or jitter, and it has no hardware timestamping.
  • You need certification-grade results. There’s no RFC 2544 or RFC 3918 test suite, and no signed report at the end.
  • You need stateful TCP. The TCP pattern is stateless SYNs. No handshake, no connection state, no retransmission.
  • You’re not on Linux. AF_XDP is a Linux kernel facility, so there’s no macOS or Windows build and there won’t be.

Built on go-afxdp

Wireblast is the friendly front end. The AF_XDP machinery underneath, meaning UMEM management, the four rings, XDP program loading and the zero-copy paths, lives in go-afxdp, a standalone Go library you can build your own tools on. If you want the packet generator, use Wireblast. If you want to write something else that moves packets at line rate from Go, start with the library.