Skip to Content
ContributorsArchitecture

Architecture

This guide explains the high-level architecture of Astraio Client.

Technology Stack

ComponentTechnology
LanguageRust
GUI FrameworkIced 
Build SystemCargo
PlatformsmacOS, Windows, Linux

Core Components

astraio-client/ ├── src/ │ ├── main.rs # Entry point │ ├── app/ # Application logic │ ├── ui/ # GUI components (Iced) │ ├── network/ # HTTP/WebSocket/gRPC clients │ ├── storage/ # Local data persistence │ └── scripting/ # Scripting engine

1. Application Layer (app/)

The core application state and business logic:

  • Request/response handling
  • Environment management
  • Collection organization

2. UI Layer (ui/)

Iced-based GUI components:

  • Request builder
  • Response viewer
  • Sidebar with collections
  • Settings modal

3. Network Layer (network/)

HTTP client implementation:

  • Request execution
  • Response parsing
  • Connection pooling
  • Timeout handling

4. Storage Layer (local/)

Local persistence:

  • Request history
  • Collections
  • Environments
  • Settings

5. Scripting Engine (scripting/)

Custom scripting support:

  • Pre-request scripts
  • Post-response scripts
  • Variable transformations

Data Flow

User Input → UI Layer → Application Logic → Network Layer → Server Local Storage ← Response

Key Design Decisions

  1. No Electron — Native performance without web runtime overhead
  2. Local Only — All data stays on your machine (no cloud sync)
  3. Keyboard First — Optimized for rapid keyboard navigation
  4. Modular Architecture — Components are loosely coupled
Last updated on