What Hurl Does
- Plain text format — readable, version-controllable
.hurlfiles - Request chaining — multiple requests in one file
- Captures — extract values from responses into variables
- Assertions — status, header, body, JSONPath, XPath, regex
- Variables — inject via CLI or capture
- Cookie handling — automatic across requests
- Certificate — client certs and custom CA
- Performance — libcurl-based, very fast
- CI-friendly —
--testmode with exit codes - Report — HTML, JSON, JUnit XML output
Comparison
| Tool | Format | CI | Language |
|---|---|---|---|
| Hurl | Plain text | Excellent | Rust |
| HTTPie | CLI args | OK | Python |
| curl | CLI args | OK | C |
| Bruno | .bru files | CLI | JS |
| Postman | JSON/GUI | Newman | JS |
FAQ
Q: Hurl vs curl? A: curl is a single-request tool; Hurl orchestrates multiple requests with assertions. Hurl uses libcurl internally but adds chained requests, capture/assert, and test mode. Hurl is better for API testing.
Q: Compared to Postman? A: Hurl is plain text + CLI (Git-friendly, CI-native); Postman is a GUI (nice visuals but files don't diff well). Developers tend to prefer Hurl.
Sources
- Docs: https://hurl.dev
- GitHub: https://github.com/Orange-OpenSource/hurl
- License: Apache 2.0