apif-optimizer 0.1.2

Assertion rewriting engine for .gctf test files
Documentation
# gRPC Testify (Rust)

<img align="right" width="150" height="150" src="https://github.com/user-attachments/assets/d331a8db-4f4c-4296-950c-86b91ea5540a">

[![Coverage Status](https://coveralls.io/repos/github/gripmock/grpctestify-rust/badge.svg?branch=master)](https://coveralls.io/github/gripmock/grpctestify-rust?branch=master)
[![Release](https://img.shields.io/github/v/release/gripmock/grpctestify-rust?logo=github)](https://github.com/gripmock/grpctestify-rust/releases/latest)
[![Documentation](https://img.shields.io/badge/Docs-VitePress-646CFF?logo=vitepress)](https://gripmock.github.io/grpctestify-rust/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Native CLI for gRPC testing with `.gctf` files.

## Documentation

- [Docs]https://gripmock.github.io/grpctestify-rust/
- [Repository]https://github.com/gripmock/grpctestify-rust

## Key Features

- Unary, client streaming, server streaming, and bidirectional streaming tests
- Assertions with built-in operators and plugin functions (`@header`, `@trailer`, `@uuid`, `@email`, etc.)
- Parallel execution, timeouts, coverage, snapshot mode (`--write`)
- Output formats: `console`, `json`, `yaml`, `junit`, `allure`, `html`
- Load/benchmark testing (`bench`) with regression gating (`bench-compare`)
- Web UI playground (`play`) with proto reflection, saved requests, history, and environments
- Extra tools for developer workflows: `check`, `fmt`, `inspect`, `explain`, `reflect`, `lsp`, `call`, `gen`,
  `grpcurl`, `list`, `index`, `query`, `health`, `scaffold`

## Requirements

- No external runtime dependencies for CLI execution
- Docker is optional (for integration examples)

## Installation

### Homebrew (macOS and Linux)

```bash
brew tap gripmock/tap
brew install gripmock/tap/grpctestify
```

### Cargo

```bash
cargo install grpctestify
```

### Prebuilt binaries (GitHub Releases)

- Download from [GitHub Releases]https://github.com/gripmock/grpctestify-rust/releases/latest
- Available for macOS, Linux, and Windows (amd64/arm64)

Verify installation:

```bash
grpctestify --version
```

## Quick Start

1. Create `hello.gctf`:

```gctf
--- ADDRESS ---
localhost:4770

--- ENDPOINT ---
hello.HelloService/SayHello

--- REQUEST ---
{
  "name": "World"
}

--- ASSERTS ---
.message == "Hello, World!"
```

1. Run test:

```bash
grpctestify hello.gctf
```

## Common Commands

```bash
# Run tests
grpctestify tests/

# Parallel run
grpctestify tests/ --parallel 4

# JSON report
grpctestify tests/ --log-format json --log-output results.json

# JUnit report
grpctestify tests/ --log-format junit --log-output junit.xml

# Validate syntax (recurses into directories — no shell glob needed)
grpctestify check tests/

# Format files
grpctestify fmt -w tests/

# Scaffold a .gctf test from server reflection
grpctestify scaffold --endpoint pkg.Service/Method --reflect --address localhost:4770

# Load test with regression gate
grpctestify bench tests/ --duration 30s --concurrency 10 --log-format json --log-output baseline.json
grpctestify bench tests/ --duration 30s --concurrency 10 --log-format json --log-output current.json
grpctestify bench-compare baseline.json current.json

# Launch the web UI playground
grpctestify play
```

## Contributing

Issues and PRs are welcome: [GitHub Issues](https://github.com/gripmock/grpctestify-rust/issues)

## License

[MIT](LICENSE)