gitmyhub

hurl

Rust ★ 19k updated 1d ago

Hurl, run and test HTTP requests with plain text.

Command-line tool for testing HTTP APIs using plain-text request files with built-in assertions and response validation.

RustlibcurlHTTP/RESTGraphQLSOAPsetup: easycomplexity 2/5

Hurl is a command-line tool for running HTTP requests and testing HTTP responses, using simple plain-text files to define what requests to make and what results to expect. HTTP requests are how web browsers and apps communicate with servers — Hurl lets you script and automate that communication from the command line without writing code.

The core workflow: you write a .hurl file describing a sequence of HTTP requests (GET, POST, etc.) along with assertions — checks like "the response status should be 200" or "this JSON field should equal 'RUNNING'". You can also capture values from one response and use them in the next request, which is essential for things like logging in (capturing a session token) before accessing protected pages. It supports REST APIs, GraphQL, SOAP, HTML content, and raw binary data.

You would use Hurl in two main scenarios: manually exploring or debugging an API without writing code, and automated integration testing — running it in a CI/CD pipeline (the automated system that checks code before it ships) to verify your API behaves correctly. It generates test reports in JUnit, HTML, TAP, and JSON formats. Under the hood it's powered by libcurl, the same library that powers the curl command-line tool. Written in Rust, it's a single binary with no runtime dependencies needed.

Where it fits