# Catalyst
[](https://github.com/caffeidine/catalyst/releases)
[](https://opensource.org/licenses/MPL-2.0)
[](https://crates.io/crates/catalyst)
[](https://catalyst.caffeidine.com)

**A lightweight and powerful API testing tool**
## Overview
**Catalyst** is a lightweight and extensible HTTP API testing tool. It allows you to define and execute API tests through a declarative configuration file, without writing any code.
## Features
- **Declarative Testing**: Configure your API test scenarios using a simple TOML file
- **Variable Management**: Chain your tests by extracting and storing variables (cookies, JSON data, etc.)
- **Configuration Validation**: Syntax and semantic checks before execution
- **JSON Assertions**: Partial validation of JSON responses with regex support
- **Performance**: Measure and validate response times
## Installation
```sh
cargo install catalyst --locked
```
## Examples
Create your test file in your project `.catalyst/tests.toml`
```toml
[config]
base_url = "http://localhost:8080"
default_headers = { "User-Agent" = "Catalyst", "Content-Type" = "application/json" }
[[tests]]
name = "Example Test"
method = "GET"
endpoint = "/api/example"
expected_status = 200
max_response_time = 500 # maximum time in ms
assertions = [
{ type = "contains", path = "data.status", value = "success" },
{ type = "regex", path = "data.id", pattern = "^[0-9a-f]{8}$" }
]
```
## Usage
Execute the tests from the command line:
```sh
# Run all tests
catalyst run
# List all tests
catalyst list --verbose
# Validate your configuration
catalyst validate
```
## Documentation
For complete documentation, visit [catalyst.caffeidine.com](https://catalyst.caffeidine.com).
## License
This project is licensed under the [MPL-2.0](https://opensource.org/licenses/MPL-2.0).