Built in Rust with iced  ·  MIT License

Stop paying for your API client. Seriously.

I wanted an API client that opens fast, keeps my data on my own machine, and does not ask me to log in. I could not find one I liked, so I wrote Rustman in Rust. It is free, it is open source, and it is yours to use.

Download Free View Source Docs Join Discord
POST /auth/login
GET /users/me
DEL /users/:id
Collections
Auth API
POST /login
GET /me
POST /refresh
Users
GET /users
PUT /users/:id
DEL /users/:id
GET
{{baseUrl}}/users/me
Send
Params
Headers
Auth
Scripts
Authorization: Bearer {{authToken}}
Content-Type: application/json
X-Request-ID: req_{{timestamp}}
Pretty
Raw
Headers
Tests
200 OK 48 ms 1.2 KB
{
  "id": 42,
  "email": "user@example.com",
  "role": "admin",
  "createdAt": "2024-01-15T10:30:00Z"
}
Features
Core
Native Rust HTTP engine
Runs through reqwest, so no browser CORS limits, no size caps, no 30s timeouts.
→ POST /auth/login HTTP/1.1
Authorization: Bearer ey••••••
Content-Type: application/json
X-Request-ID: req_1716559812

← HTTP/1.1 200 OK  48ms
"token": "eyJhbGci..."
"role": "admin"
Privacy
Zero telemetry
Your requests never leave your machine. No analytics, no crash reports, no hidden pings.
0 bytes sent to us. ever.
Lightweight
Install size
~30MB
Rustman
~30 MB
Postman
350 MB
Bruno
100 MB
Editor
Built in code editor
const body = {
  email: "user@x.com",
  role: "admin"
}
Version control
Git for collections
commit, branch, restore local
clone / pull / push remote
roll back to any commit undo
your git, your keys SQLite stays the truth
Theming
Accent colors
Seven themes to pick from, each with its own accent color. Rustman remembers the one you choose.
Speed
Command palette
Hit one key, search every action, and jump straight there. The whole app is keyboard first.
⌘ type a command…
Send request
New tab
Switch environment
Organization
Collections
POST /login
GET /me
POST /refresh
GET /users
DEL /users/:id
Native Rust HTTP
Runs through reqwest, so no browser CORS limits, no size caps, no 30s timeouts.
Zero telemetry
Your requests never leave your machine. No analytics, no hidden pings, ever.
Git for collections
Commit, branch, and restore. Clone, pull, and push through your own system git.
WebSocket
Type a ws or wss URL and the panel flips into WebSocket mode. Send and receive on a live feed.
Code editor
Syntax highlighting and line numbers for the request body and the response, with full selection.
Collections & history
Organize requests into collections. Replay from history. All stored in local SQLite.
All auth types
Bearer, Basic, API Key, Cookie, and JWT, plus environment variable substitution.
Accent colors
Seven themes, each with its own accent color. Rustman remembers the one you pick.
Scripting

A scripting language built in Rust, not borrowed from Node.

Pre-request and test scripts run on rustman-engine, a small interpreted language written from scratch in Rust — no embedded JS runtime, no pm.* API to memorize. It is small on purpose: env vars, headers, cookies, JWT decoding, base64, and JSON assertions, in a syntax simple enough for an AI to generate correctly from a plain-English request. Full grammar and built-ins are on the scripting docs page.

Pre-request script
// inject a bearer token, only if one is set
let token = env("access_token")
if token != "" {
    set_header("Authorization", "Bearer " + token)
}
Test script, post-response
// decode the response's JWT and stash claims
let claims = jwt_decode(header("Authorization"))
set_env("user_id", claims.payload.sub)

test("status is 200", response.status == 200)

let body = response.json()
test("has a token", body.token != null)
Compare

Rustman vs the rest

How it stacks up against Postman and Bruno.

Free
vs $14/mo Postman
~30 MB
vs 350 MB Postman
0 bytes
sent to any server
No login
account never required
Only Rustman has
✓ Native HTTP engine, no CORS, no size limits
✓ Git for collections with your own remote
✓ Native GUI, no webview and no Electron
✓ Session restore, pick up where you left off
Feature Rustman Postman Bruno
PriceFree foreverFreemium / $14moFree
Open source✓✗ Proprietary✓
Install size~30 MB~350 MB~100 MB
No account required✓✗ Mandatory✓
Zero telemetry✓ 100% local✗ Cloud sync✓
Works offline✓Limited✓
Native HTTP, no CORS✓ Rust/reqwest✗✗
Native GUI, no webview✓ iced✗ Electron✗ Electron
Git for collections✓ local + remote✗✓
WebSocket✓✓✗
Code editor✓ syntectBasicBasic
Large response viewer✓✗✗
Postman collection import✓ v2.1✓✓
Multi-tab editing✓✓Limited
Session restore✓✓✗
Pre/post scripts✓ Rust-native✓✓

Based on publicly available info. Postman pricing subject to change.

Roadmap

What is coming next

This is what I am working on next. Nothing on this list is a promise or a date.

Flows
Saved flows
Next up
A named chain of requests that runs start to finish on demand, and runs again the same way whenever you want it to. Values pulled out of one response feed into the next request.
Browser capture into a flow
Exploring
A browser opened from inside Rustman that records the requests a real app fires while you click through it, and writes them into a flow.
Protocols and formats
GraphQL
Shipped in 0.3.15
A GraphQL body type with Query and Variables panes.
GraphQL schema awareness
Planned
Autocomplete and validation from a fetched schema.
gRPC
Planned
Collection runner
Planned
One pass over a whole collection in order, with all of the test results in one place.
Code generation beyond cURL
Planned
Export a request as code for other languages and clients. cURL export works today.
OpenAPI YAML import
Shipped in 0.3.15
The import file picker now accepts .yaml/.yml Swagger and OpenAPI specs, not only .json.
Scripting engine
Shipped in 0.3.13
Substring and membership tests in pre-request and test scripts. On an object it tests whether a key is there.
Loops and array helpers
Planned
Regex matching
Planned
Hashing and HMAC builtins
Planned
The engine has AES and base64 today. There is no standalone hash or HMAC function in it.
Script formatter
Exploring
Download

Get Rustman

Free, open source, around 30 MB. No sign up. No telemetry. Just download and run.

Download Latest Release
v0.3.15 · macOS · Windows · Linux · MIT License
Build from source View on GitHub →
# Requires Rust 1.85+, a C toolchain, and CMake
git clone https://github.com/rust-man-org/rustman
cd rustman
cargo build --release

Needs a Rust toolchain (1.85 or newer), plus a C compiler and CMake for the vendored libgit2, OpenSSL, and SQLite. The full guide is in docs/DEVELOPMENT.md.