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.mdKey Files
| File | Purpose |
|---|---|
Cargo.toml | Dependencies and project metadata |
build.rs | Build-time configuration |
main.rs | Application 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 renderingsrc/ui/
GUI components:
ui/
├── mod.rs
├── request_builder.rs
├── response_viewer.rs
├── sidebar.rs
├── settings.rs
└── theme.rssrc/network/
HTTP/networking:
network/
├── mod.rs
├── http_client.rs
├── websocket.rs
└── grpc.rsAdding New Features
- Create a new module in the appropriate directory
- Define the state and messages
- Implement the update logic
- Add the UI component
- Wire everything together in
app/mod.rs
See Contributing for detailed instructions.
Last updated on