goose is a free, open source monitoring & observability project written in Rust and released under Apache-2.0. It has 1,014 GitHub stars, 81 forks and 43 open issues, and was last pushed 14 hours ago. On this registry it ranks #223 of 270 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 15 stars over the last 30 tracked days.

What is goose?

Goose is a load testing framework written in Rust and inspired by Locust, aimed at developers and performance engineers who want to define realistic user behavior in code and compile it into a load testing tool of their own.

What it is

Goose is an open-source load testing library rather than a finished application. A team writes a Rust program against the Goose library, describes the traffic it wants to generate, and compiles that program into a purpose-built load testing tool. The project is developed by Tag1 Consulting, lives in the Infrastructure and Operations / Monitoring and Observability category, and is published as the goose crate on crates.io under the Apache-2.0 licence. Supporting documentation is split between The Goose Book at book.goose.rs and API documentation at docs.rs/goose.

The concrete problem it solves is that generic load generators force a trade-off between realism and control. A test that only fires requests at endpoints does not capture a session in which a user logs in, fills out a form, and then navigates through the application. Goose lets the test itself be ordinary Rust code, so the sequence of user actions, the branching between them, and any validation of the responses can all be expressed directly and then compiled into a binary that targets the application under test. It replaces the practice of bending a general-purpose testing tool into shapes it was not built for, and it sits in the same space as the Locust project whose approach inspired it.

Key capabilities

  • Load tests are written as a Rust application and compiled, producing a tailored testing tool rather than a configuration file interpreted at runtime.
  • HTTP load testing is a first-class concern, reflected by the http and http-client topics and by HTTP response handling in the library.
  • User behavior is simulated as a journey: logging in, filling out forms, and navigating through an application, not merely as isolated requests.
  • Metrics and performance measurement are part of the core feature set, matching the metrics and performance topics.
  • The goose-eggs helper crate supplies utility functions for writing load tests, including validation helpers for HTTP responses.
  • A collection of ready-made examples lives in the examples/ directory of the tag1consulting/goose repository on GitHub.
  • The Goose Book and the docs.rs API reference provide the guided path from first test to complex scenario.

Who uses it and how

  • Engineering teams that need to reproduce real traffic patterns before a launch or a known high-traffic event, using sessions rather than single requests.
  • Rust shops that prefer to keep load tests in the same language and toolchain as the services they are testing.
  • Teams that need to assert on responses during a load run, which is where the goose-eggs validation helpers apply.
  • Projects that want a compiled, self-contained load testing binary rather than a script executed by an interpreter.

Getting started

Add the goose crate from crates.io to a Rust project, write the load test, and compile it into a custom tool; The Goose Book at book.goose.rs covers the setup, and the examples/ directory in the repository provides working starting points.

How it compares

No list of paid products it replaces is given in the facts, so the only named comparable is Locust, the project whose design inspired Goose. Goose takes that inspiration and delivers it as a Rust library that is compiled into a bespoke testing tool, with the Apache-2.0 licence and the crate on crates.io as the distribution path.

When to use it — and when not to

A self-hoster must run a Rust toolchain and compile a binary, and no packaged Docker image, Compose file, or hosted option is described in the README, so anyone wanting a point-and-click or configuration-driven load tester should look elsewhere. The README is deliberately short and defers heavily to The Goose Book and the API documentation, so teams that need everything explained in the repository itself will have extra reading to do. The project is active, with a recent push, but the repository carries a substantial number of open issues, so a team should expect to work with an evolving codebase rather than a frozen one.

project readme (upstream, from github) — read inline

Goose: A Powerful Load Testing Framework

What is Load Testing?

Load testing is a critical step in ensuring your web application can handle real-world traffic patterns. It helps you identify performance bottlenecks, optimize resource allocation, and ensure a seamless user experience.

Why Choose Goose?

  • Fast and Scalable: Built with Rust, Goose is designed for speed and scalability.

  • Flexible and Customizable: Supports simple and complex load tests, tailored to mimic real-world user behavior.

  • Realistic User Behavior Simulation: Goes beyond just sending requests; simulates user behaviors like logging in, filling out forms, and navigating through your application.

  • Have you ever been attacked by a goose?

Getting Started

To use Goose, you'll need to write a Rust application using the Goose library. Then, compile it to create a tailored load testing tool specific to your needs.

You may find the following resources helpful:

Simple Example

Check out our examples on GitHub. You can also use Goose Eggs, a helper crate that provides useful functions for writing load tests, such as validation helpers for HTTP responses.

Community and Support

Developed by Tag1 Consulting, Goose has a growing community and a series of blog posts and podcasts detailing its features, comparisons with other tools, and real-life testing scenarios.

crates.io Documentation Apache-2.0 licensed CI

Frequently asked questions

Is goose free to use?

goose is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does goose do?

Load testing framework, inspired by Locust

What is goose written in?

goose is primarily written in Rust. Its source is publicly available at https://github.com/tag1consulting/goose, and it has 1,014 GitHub stars.