Skip to content

Latest commit

 

History

2,042 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rocket

Rocket

Modern API testing workspace inspired by Bruno. Fast native desktop app with file-based collections, git integration, and offline-first design.

Rust React Platform Offline Memory License


Features

  • File-based collections stored as OpenCollection YAML on disk
  • Multi-workspace support with embedded and external collections
  • Full git integration with staging, commits, branches, push/pull, stash, and conflict resolution
  • Environment variables with {{variable}} template syntax and secret masking
  • Multi-tab editor with split panes, auto-save, and keyboard-driven navigation
  • Authentication support for Basic, Bearer, API Key, OAuth 2.0, and AWS SigV4
  • Load testing with concurrent request execution and percentile latency stats
  • Monaco editor for JSON/XML/text bodies with syntax highlighting and theme sync
  • Contract Lock — attach SLA/API contracts to collections or folders, track changes, and preview PDFs natively
  • Light/dark theme with system preference detection
  • Cross-platform native desktop app (Linux, macOS, Windows)
  • No cloud, no account — your data stays on your machine

Why Rocket is Fast

Most API clients are Electron apps — they ship a full copy of Chromium and a Node.js runtime with every install. That baseline alone costs 300–500 MB of RAM before you open a single request.

Rocket is built differently:

Rocket Postman / Insomnia
Runtime Rust + OS WebView Electron (Chromium + Node.js)
Idle memory No bundled Chromium ~400–600 MB RSS
Install size ~16 MB ~300–500 MB
Background sync None Cloud sync, telemetry, updater
Startup Fast (native binary) Slow (JS engine warmup)

How:

  • Tauri uses the OS WebView — WebKitGTK on Linux, WKWebView on macOS, WebView2 on Windows. No bundled Chromium.
  • Rust backend — no garbage collector, no JVM, no Node runtime. Services are small structs wired via trait objects and dropped when not needed.
  • No cloud, no polling — there is no background process phoning home. Every I/O operation is triggered by user action, against local files only.

Rocket uses the OS WebView (WebKitGTK on Linux, WKWebView on macOS, WebView2 on Windows) rather than bundling Chromium. Total memory depends on what WebKit processes the OS already has running.

Quick Start

Prerequisites

Development

# Install frontend dependencies
yarn install

# Full Tauri dev mode (launches desktop window + Vite HMR)
yarn tauri dev

# Frontend only (Vite server at http://localhost:1420)
yarn dev

Build

# Production build
yarn tauri build

# Frontend only
yarn build

Checks

# TypeScript
yarn tsc --noEmit

# Rust
cargo check

# Frontend tests
yarn test

# Rust tests
cargo test

Architecture

Frontend (React 19)  -->  Tauri IPC  -->  Rust Services  -->  Filesystem (~/.rocket-api/)

Crate Layout

Crate Role
rocket-shared Common types, errors, events
rocket-collection Collection/folder/request domain model + contract types
rocket-environment Environment variables and {{var}} resolution
rocket-history Request execution history
rocket-workspace Workspace domain model
rocket-http HTTP executor, auth schemes, load testing
rocket-git Git operations via libgit2
rocket-app Orchestration services
rocket-infra Filesystem implementations
rocket-import Bruno collection importer
src-tauri Tauri commands and app initialization

Frontend Stack

Technology Purpose
React 19 + TypeScript 5.8 UI framework
Zustand 5.0 State management
shadcn/ui + Radix UI Component library
TailwindCSS 4.2 Styling
Monaco Editor Code editing
Lucide React Icons

Data Storage

~/.rocket-api/
  workspaces.yml              # Workspace registry
  My Workspace/
    workspace.yml              # Workspace config
    collections/
      my-api/
        opencollection.yml     # Collection settings
        get-users.yml          # Request files
        auth/
          login.yml
        .rocket/
          contracts/
            <id>.yml           # Contract definition (git-tracked)
            attachments/
              <id>/
                document.pdf  # Attached files (max 2 MB each)
    environments/
      production.yml
      staging.yml
    history/
    cookies/

Contract Lock

Contract Lock lets you attach formal agreements (SLAs, API contracts) to a collection or any folder within it, track changes over time, and surface violations directly in your workspace.

Key capabilities

  • Attach one or more reference documents (PDF, DOCX, TXT, Markdown, PNG/JPG) up to 2 MB each
  • Scope a contract to the entire collection, a specific folder, or a single request
  • Track provider, consumer, project, version, effective date, and optional expiry
  • Automatic status badges: Active, Expiring soon (≤ 30 days), Expired
  • Changelog records API drift against the locked baseline
  • Click a .pdf attachment to open it in a native preview window
  • Attachment files are copied into .rocket/contracts/attachments/<id>/ inside the collection — fully git-portable, deleted automatically when the contract is removed

Storage

Contracts are stored as YAML files under .rocket/contracts/ inside the collection directory. Because the .rocket/ folder lives alongside your request files, it is committed alongside them in any git workflow.

Project Structure

src/                           # React frontend
  components/
    collections/               # Collection sidebar tree
    editor/                    # Monaco wrapper and themes
    contract/                  # Contract Lock UI
    git/                       # Git UI panel
    layout/                    # App shell, sidebar, status bar
    panes/                     # Tab system and editor groups
    request/                   # Request editor, params, auth, body
    response/                  # Response viewer
    workspace/                 # Workspace overview, environments
  hooks/                       # Custom React hooks
  lib/                         # Utilities, Tauri API bridge
  stores/                      # Zustand stores
  types/                       # TypeScript type definitions
crates/                        # Rust backend
  rocket-shared/
  rocket-collection/
  rocket-environment/
  rocket-history/
  rocket-workspace/
  rocket-http/
  rocket-git/
  rocket-app/
  rocket-infra/
src-tauri/                     # Tauri shell
  src/
    commands/                  # IPC command handlers
    lib.rs                     # App initialization
docs/
  manual/                      # User manual with screenshots

Keyboard Shortcuts

Shortcut Action
Cmd/Ctrl+Enter Send request
Cmd/Ctrl+S Save request / Save to Collection
Cmd/Ctrl+W Close tab
Cmd/Ctrl+Tab Next tab
Cmd/Ctrl+Shift+Tab Previous tab
Cmd/Ctrl+1-9 Jump to tab by index

Documentation

  • User Manual — how to use the app
  • Architecture — codebase guide for contributors
  • Crate-level docs in each crates/*/CLAUDE.md

License

MIT