Suggest a tool

Bruno vs Hurl: open-source API testing tools compared

Metrics as of , from the GitHub or GitLab API of each repository. Refreshed monthly.

Summary

Bruno: Offline API client that stores request collections as plain text files, with a CLI for running them in CI.

Hurl: Command line tool that runs and tests HTTP requests written in a plain text format.

Both are listed under API testing. The table gives repository metrics from the GitHub API with their fetch date, then the documented facts used for every comparison in this category, each linked to the README or docs page it comes from. A cell reads "not documented" when the fact was not found in the project's documentation; that does not mean the feature is absent.

Side by side

Bruno and Hurl: metrics and documented facts, in the fixed row order used for API testing comparisons.
FactBrunoHurl
Stars47,111119,2101
Forks2,90817451
Contributors4861971
Last release2026-08-2012026-04-291
Last commit2026-09-2212026-09-211
Commits in 90 days54511631
LicenseMIT1Apache-2.01
Primary languageJavaScript1Rust1
Statusactive1active1
ProtocolsREST, GraphQL, SOAP, gRPC, WebSocket source: Docs: Send Requests OverviewHTTP: REST, SOAP and GraphQL APIs, HTML content, XML and JSON based APIs source: README
Test authoring formatRequests saved as plain text files in the Bru markup language, edited in a desktop app source: READMEPlain text Hurl files that define HTTP requests and asserts source: README
Languages for writing testsJavaScript test scripts with Chai assertions source: Docs: TestingHurl plain text file format source: README
Parallel or distributed executionCLI --parallel flag runs requests in parallel source: Docs: Command Options--parallel runs each file in its own worker thread; --jobs sets the number of parallel jobs source: README
CI integrationCLI Docker images with CI examples for GitHub Actions, GitLab CI, Jenkins source: READMECI/CD tutorial with GitHub Actions and GitLab CI/CD examples source: Docs: CI/CD Integration
Report formatsJSON, JUnit, HTML source: Docs: Bruno CLIHTML, JSON, JUnit, TAP source: README
Install methodBinary download; Homebrew, Chocolatey, Scoop, Snap, Flatpak, Apt (brew install bruno) source: READMEBinaries; Homebrew, Chocolatey, Scoop, winget, cargo, conda-forge, npm, Docker image ghcr.io/orange-opensource/hurl source: README

1 Fetched from the GitHub or GitLab API on . Hover a value for its own date.

When each fits

Written from each project's documented scope, not from preference. Neither tool is ranked.

Bruno

Fits projects that explore and test APIs from a desktop client with collections kept under version control; its README describes a plain text markup language, Bru, for saved API requests. source: README

Hurl

Fits projects that run and test HTTP requests defined in plain text files from the command line; its README describes chaining requests, capturing values and evaluating queries on response headers and body. source: README

More on these tools

Sources

  1. GitHub REST API: repository, read
  2. GitHub REST API: repository, read
  3. GitHub REST API: contributors, read
  4. GitHub REST API: contributors, read
  5. GitHub REST API: latest release, read
  6. GitHub REST API: latest release, read
  7. GitHub REST API: commits, read
  8. GitHub REST API: commits, read
  9. Docs: Send Requests Overview, read
  10. README, read
  11. README, read
  12. Docs: Testing, read
  13. Docs: Command Options, read
  14. Docs: CI/CD Integration, read
  15. Docs: Bruno CLI, read

Documented facts collected 2026-09-22. See the methodology for how metrics and facts are gathered.