Skip to Content
ContributorsProject Structure

Project Structure

Understanding the Astraio codebase organization.

Repository Layout

astraio-client/ ├── .github/workflows/ # CI/CD pipelines ├── assets/ # Icons, images ├── src/ # Source code │ ├── main.rs │ ├── app/ │ ├── ui/ │ ├── network/ │ └── scripting/ ├── wix/ # Windows installer config ├── Cargo.toml # Rust dependencies ├── build.rs # Build script ├── CHANGELOG.md ├── CONTRIBUTING.md └── README.md

Key Files

FilePurpose
Cargo.tomlDependencies and project metadata
build.rsBuild-time configuration
main.rsApplication entry point

Source Code Modules

src/app/

Core application logic:

app/ ├── mod.rs ├── state.rs # Application state ├── message.rs # Event messages ├── update.rs # State updates └── view.rs # View rendering

src/ui/

GUI components:

ui/ ├── mod.rs ├── request_builder.rs ├── response_viewer.rs ├── sidebar.rs ├── settings.rs └── theme.rs

src/network/

HTTP/networking:

network/ ├── mod.rs ├── http_client.rs ├── websocket.rs └── grpc.rs

Adding New Features

  1. Create a new module in the appropriate directory
  2. Define the state and messages
  3. Implement the update logic
  4. Add the UI component
  5. Wire everything together in app/mod.rs

See Contributing for detailed instructions.

Last updated on