Last Updated on March 8, 2026
Drill is a HTTP load testing application written in Rust. The main goal for this project is to build a really lightweight tool as alternative to other that require JVM and other stuff.
You can write benchmark files, in YAML format, describing all the stuff you want to test.
It was inspired by Ansible syntax because it is really easy to use and extend.
Key Features
- Concurrency: run your benchmarks choosing the number of concurrent iterations.
- Multi iterations: specify the number of iterations you want to run the benchmark.
- Ramp-up: specify the amount of time, in seconds, that it will take drill to start all iterations.
- Delay: introduce controlled delay between requests. Example: delay.yml
- Dynamic urls: execute requests with dynamic interpolations in the url, like /api/users/{{ item }}
- Dynamic headers: execute requests with dynamic headers. Example: headers.yml
- Interpolate environment variables: set environment variables, like /api/users/{{ EDITOR }}
- Executions: execute remote commands with test plan data.
- Assertions: assert values during the test plan. Example: iterations.yml
- Request dependencies: create dependencies between requests with assign and url interpolations.
- Split files: organize your benchmarks in multiple files and include them.
- CSV support: read CSV files and build N requests fill dynamic interpolations with CSV data.
- HTTP methods: build request with different http methods like GET, POST, PUT, PATCH, HEAD or DELETE.
- Cookie support: create benchmarks with sessions because cookies are propagates between requests.
- Stats: get nice statistics about all the requests. Example: cookies.yml
- Thresholds: compare the current benchmark performance against a stored one session and fail if a threshold is exceeded.
- Tags: specify test plan items by tags.
Website: github.com/fcsonline/drill
Support:
Developer: Ferran Basora
License: GNU General Public License v3.0
Drill is written in Rust. Learn Rust with our recommended free books and free tutorials
Related Software
| Web Server Benchmarking Tools | |
|---|---|
| Locust | Easy to use, scriptable and scalable performance testing tool |
| Apache JMeter | Load testing and performance measurement application |
| k6 | Modern load testing tool for developers and testers in the DevOps era |
| wrk | Modern HTTP benchmarking tool |
| Siege | HTTP regression testing and benchmarking utility |
| AutoCannon | Fast HTTP/1.1 benchmarking tool |
| Tsung | Multi-protocol distributed load testing tool |
| bombardier | Uses fasthttp instead of Go’s default http library, |
| ApacheBench | Apache (and other web servers) benchmark tool |
| Cassowary | Modern HTTP/S, intuitive & cross-platform load testing tool built in Go |
| Drill | HTTP load testing application written in Rust |
| httperf | HTTP load generator |
| FunkLoad | Web testing tool in the same spirit as Perl's WWW::Mechanize |
Read our verdict in the software roundup.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |

