Aethium
A minimal, high-performance UI framework where the UI is written entirely in Go, rendered via an immediate-mode canvas, and deployed to web, mobile, and desktop targets using Flutter as the primary rendering engine.
Framework Overview
| Feature |
Web (Flutter) |
Mobile (Flutter) |
Desktop (Flutter) |
| Toolchain |
Flutter + Go |
Flutter + Go |
Flutter + Go |
| Rendering |
Flutter Web |
Flutter Native |
Flutter Native |
| Binary Size |
β€ 2 MB |
β€ 50 MB |
β€ 100 MB |
| Platform Support |
All modern browsers |
Android & iOS |
Windows, macOS, Linux |
| Hot Reload |
β
|
β
|
β
|
| Rich Widgets |
β
|
β
|
β
|
| Native Performance |
β
|
β
|
β
|
Why Aethium? (The Go-First Model)
Aethium's key differentiator is its unified Go programming model with Flutter as the rendering engine. Unlike other frameworks that force a split between "frontend" and "backend", Aethium lets you build the entire application, including the UI, in pure Go while leveraging Flutter's rich widget ecosystem and native performance.
Comparison Table
| Feature |
Aethium (Flutter) |
React Native |
Flutter |
Wails |
Tauri |
Electron |
| UI Language |
Go |
JavaScript/TypeScript |
Dart |
JS/TS/CSS |
JS/TS/CSS |
JS/TS/CSS |
| Backend Language |
Go |
JavaScript/TypeScript |
Dart |
Go |
Rust |
JS/TS (Node) |
| Rendering Engine |
Flutter |
Native |
Flutter |
Web DOM |
Web DOM |
Web DOM |
| Cross-Platform |
β
(Web, Mobile, Desktop) |
β
(Mobile) |
β
(Mobile, Web, Desktop) |
β
(Desktop) |
β
(Desktop) |
β
(Desktop) |
| Hot Reload |
β
|
β
|
β
|
β
|
β
|
β
|
| Native Performance |
β
|
β
|
β
|
β οΈ |
β οΈ |
β οΈ |
| Binary Size |
Small (β€ 100MB) |
Medium |
Medium |
Small |
Small |
Large (120MB+) |
| JS Engine |
None |
Required |
None |
Required |
Required |
Required |
Core Principles
- Single Codebase: Write once in Go, run on the web and desktop with identical visuals.
- Immediate-Mode: No DOM, no widget tree. Pure draw command stream for maximum performance.
- Fine-Grained Reactivity: Signal-based updates ensure only the necessary parts of the UI re-render.
- Zero Dependencies: The core framework is built entirely on the Go standard library and JS built-ins.
Quick Start
# Install the CLI
go install github.com/A-Solo-Engineer/aethium/cmd/aethium@latest
# Create a new project
aethium new --module example.com/myapp
# Build for your target
aethium build --target web # For Web (Flutter)
aethium build --target android # For Android (Flutter)
aethium build --target ios # For iOS (Flutter)
aethium build --target windows # For Windows (Flutter)
aethium build --target macos # For macOS (Flutter)
aethium build --target linux # For Linux (Flutter)
aethium build --target all # For all platforms
Documentation
| Guide |
Description |
| Architecture |
Technical design, Flutter integration, and system diagrams. |
| State Management |
Signals, computed values, effects, and memory pooling. |
| Usage Guide |
API reference, component lifecycle, and Flutter examples. |
| Build System |
Flutter builds, platform-specific configurations, and deployment. |
Project Structure
graph TD
A[App Code] --> B[Reactive Context]
A --> C[Scene Graph]
B --> D[Runtime]
C --> D
D --> E[DrawList]
E --> F[Flutter Backend]
F --> G[Flutter Web]
F --> H[Flutter Mobile]
F --> I[Flutter Desktop]
Flutter Integration
Aethium now uses Flutter as its primary rendering engine, providing:
- Access to all Flutter widgets and components
- Material Design and Cupertino support
- Customizable themes and styling
- Animation and gesture support
- Web: Deploy to any modern browser
- Mobile: Native Android and iOS apps
- Desktop: Native Windows, macOS, and Linux applications
π§ Development Experience
- Hot reload and hot restart
- Comprehensive debugging tools
- Rich developer tools and inspector
- State management integration
Example: Flutter Integration
package main
import (
"github.com/A-Solo-Engineer/aethium/platform/flutter_unified"
"github.com/A-Solo-Engineer/aethium/runtime"
)
func main() {
// Create Flutter backend for web
backend := flutter_unified.NewFlutterUnifiedBackend(800, 600, flutter_unified.PlatformWeb)
// Create runtime
rt := runtime.NewRuntime(backend)
// Run your application
// ...
}
License
AGPL-3.0