The project aims for the sweet spot between a small C program that simulates a network client/server and a fully featured network micro-benchmark. It provides you with a basic multi-threaded epoll-based client/server program that is intended to be extended, as needed, with Lua scripts.
rushit can simulate the following network workloads:
tcp_rr, a request/response over TCP workload; simulates HTTP or RPC,
tcp_stream, a uni-/bi-directional bulk data transfer over TCP workload; simulates FTP or
udp_stream, a uni-directional bulk data transfer over UDP workload; simulates audio or video streaming.
How do I get started?
Best place to start is the project documentation at Read the Docs.
:ref:`introduction` goes over basic usage and available command line options.
Don't know Lua?
Don't worry. See Learn Lua in Y minutes for a quick introduction.
Once you are hooked on Lua, take a look at these resources:
- Lua for Programmers blog series
- Programming in Lua book
- Lua 5.1 Reference Manual
- The Lua language (v5.1) cheat sheet
Fedora, CentOS: In pabeni's copr repository (thanks Paolo!)
Want to contribute?
Great! Just create a Pull Request. We follow these guidelines:
- C99, avoid compiler-specific extensions.
- Linux kernel coding style, with tabs expanded to 8 spaces.