https://github.com/athrvk/vayu
High-Performance API Testing Platform
https://github.com/athrvk/vayu
api-client api-testing cpp electron load-testing performance postman-alternative testing-tools
Last synced: 2 months ago
JSON representation
High-Performance API Testing Platform
- Host: GitHub
- URL: https://github.com/athrvk/vayu
- Owner: athrvk
- License: agpl-3.0
- Created: 2026-01-02T06:18:04.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2026-01-26T13:13:49.000Z (2 months ago)
- Last Synced: 2026-01-27T01:16:43.648Z (2 months ago)
- Topics: api-client, api-testing, cpp, electron, load-testing, performance, postman-alternative, testing-tools
- Language: TypeScript
- Homepage: https://github.com/athrvk/vayu
- Size: 4.63 MB
- Stars: 4
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Vayu
**High-Performance API Testing Platform**
[](https://github.com/athrvk/vayu/releases/latest)
[](LICENSE)
[](https://github.com/athrvk/vayu/releases)
[](https://github.com/athrvk/vayu)
[](https://github.com/athrvk/vayu/fork)
[](https://github.com/athrvk/vayu/issues)
[](https://github.com/athrvk/vayu/pulls)




## Overview
Vayu combines the ease of use of API design tools like Postman with the raw performance of high-throughput load testing tools. Build and debug requests visually, then run the same tests at scaleβall in one tool.
Vayu uses a **sidecar architecture** that separates the user interface from the execution engine:
- **The Manager** (Electron + React): Provides a modern UI for building requests, managing collections, and viewing results
- **The Engine** (C++): A high-performance daemon capable of executing thousands of requests per second
The Manager communicates with the Engine via a local HTTP API on port 9876, allowing each component to be optimized for its specific purpose.
## Features
- **High Performance** - C++ engine optimized for maximum throughput
- **Request Management** - Organize requests into collections with folder hierarchy
- **Load Testing** - Run load tests with real-time metrics streaming
- **Environment Variables** - Manage variables across collections and environments
- **Test Scripting** - QuickJS-based scripting engine compatible with Postman's `pm.test()` syntax
- **Privacy First** - 100% local execution, no cloud sync required
- **Cross Platform** - macOS, Windows, and Linux support
## π¦ Download
**Version 0.1.1** is now available! Download the installer for your platform:
- **Windows**: [Vayu-0.1.1-x64.exe](https://github.com/athrvk/vayu/releases/download/v0.1.1/Vayu-0.1.1-x64.exe)
- **macOS**: [Vayu-0.1.1-universal.dmg](https://github.com/athrvk/vayu/releases/download/v0.1.1/Vayu-0.1.1-universal.dmg)
- **Linux**: [Vayu-0.1.1-x86_64.AppImage](https://github.com/athrvk/vayu/releases/download/v0.1.1/Vayu-0.1.1-x86_64.AppImage)
[View all releases β](https://github.com/athrvk/vayu/releases)
## Quick Start
### Prerequisites
- **C++ Engine**: CMake 3.25+, C++20 compiler, vcpkg
- **Electron App**: Node.js β₯ 20 LTS, pnpm β₯ 10
### Building from Source
Clone the repository:
```bash
git clone https://github.com/athrvk/vayu.git
cd vayu
```
Build and run (all platforms):
```bash
# Build everything (development mode)
python build.py --dev
# Then start the app
cd app && pnpm run electron:dev
```
**Quick commands:**
```bash
python build.py --dev # Development build
python build.py # Production build
python build.py -e # Engine only
python build.py -a # App only
python build.py -t # Build with tests
python build.py --help # See all options
```
For detailed setup and troubleshooting, see the [Building Documentation](docs/building.md).
## Architecture
Vayu uses a sidecar pattern where the Electron UI (Manager) communicates with a separate C++ daemon (Engine) via HTTP:
```
ββββββββββββββββββββββ ββββββββββββββββββββββ
β THE MANAGER β HTTP β THE ENGINE β
β (Electron/React) βββββββββΊβ (C++) β
β β :9876 β β
β β’ Request Builder β β β’ EventLoop β
β β’ Collections β β β’ QuickJS Runtime β
β β’ Load Dashboard β β β’ Multi-Worker β
ββββββββββββββββββββββ ββββββββββββββββββββββ
```
See [Architecture Documentation](docs/architecture.md) for detailed information.
## Tech Stack
- **Engine**: C++20 with lock-free data structures
- **Networking**: libcurl for HTTP client operations
- **Scripting**: QuickJS for test script execution
- **UI**: Electron + React + TypeScript
- **State Management**: Zustand (UI state) + TanStack Query (server state)
- **Build System**: CMake + vcpkg for C++, pnpm + Vite for Electron app
## Documentation
| Document | Description |
|----------|-------------|
| [Architecture](docs/architecture.md) | System architecture and design decisions |
| [Engine API Reference](docs/engine/api-reference.md) | HTTP API for controlling the engine |
| [Building](docs/building.md) | Build instructions for all platforms |
| [Engine Building](docs/engine/building.md) | Building just the C++ engine |
| [Contributing](docs/contributing.md) | Guidelines for contributing |
## Contributing
Contributions are welcome! Please read the [Contributing Guide](docs/contributing.md) for details on:
- Development setup
- Code style guidelines
- Testing requirements
- Commit message conventions
- Pull request process
## Versioning & Releases
The canonical version for releases is stored in the top-level `VERSION` file. The CI workflow uses a pushed Git tag to publish artifacts.
**Key points:**
- The workflow triggers on tag pushes that follow the `v*` pattern (for example `v0.1.1`).
- Electron produces installer filenames that already contain the version (for example `Vayu Setup 0.1.1.exe` and `Vayu-0.1.1-x86_64.AppImage`), and the workflow uploads those files to the Release as-is.
**How to create a release (recommended):**
1. Bump the version using the build script:
```bash
python build.py --bump-version patch # 0.1.1 -> 0.1.2
# or
python build.py --bump-version 0.1.2 # set specific version
# Preview changes first
python build.py --bump-version patch --dry-run
```
2. Commit the changes:
```bash
git add VERSION engine/include/vayu/version.hpp engine/CMakeLists.txt engine/vcpkg.json app/package.json
git commit -m "chore(release): 0.1.2"
```
3. Create and push a tag that matches the `VERSION` file, prefixed with `v`:
```bash
git tag v$(cat VERSION)
git push origin --tags
```
4. The workflow will run on the pushed tag, execute tests and builds, and upload installers to the Release associated with that tag.
**Notes:**
- The `VERSION` file is the single source of truth; maintain it before pushing tags.
## βοΈ License
Vayu is a dual-licensed project:
* **Vayu Engine (`/engine`)**: Licensed under **GNU AGPL v3**.
* **Vayu UI (`/app`)**: Licensed under **Apache 2.0**.
**Usage Note:** You are free to use Vayu for any purpose. If you modify the **Engine** and provide it as a network service, you must open-source your changes. The **UI** is more permissive and allows for easier development.
---
**Built for developers who care about performance**
[Documentation](docs/) Β· [Report Bug](https://github.com/athrvk/vayu/issues) Β· [Request Feature](https://github.com/athrvk/vayu/issues)