StratoSDK is a framework with a declarative approach similar to Flutter/React, written and designed entirely for Rust.
| 1 | This todo list/goal list is ordered by: **Priority (P)**, **Difficulty (D)**, **Complexity (C)** and **Value (V)** on a scale of 1–5 (5 = maximum). |
| 2 | This todolist will be updated periodically as the project evolves. |
| 3 | |
| 4 | --- |
| 5 | |
| 6 | ## 🏁 Core Engine Fundamentals |
| 7 | |
| 8 | * [x] 1. Cross-platform event loop – P5 D3 C3 V5 |
| 9 | * [x] **2. Virtual DOM / diff engine** – P5 D4 C4 V5 |
| 10 | * [x] **3. Flexbox layout system (Taffy)** – P5 D3 C3 V5 |
| 11 | * [x] **4. Reactive state management (signals/store)** – P5 D4 C4 V5 |
| 12 | * [x] **5. Hot reload / live preview** – P5 D4 C4 V5 |
| 13 | * [x] **6. Theming & dark mode support** – P5 D2 C2 V5 |
| 14 | * [x] **7. Plugin system / custom components** – P5 D4 C4 V5 |
| 15 | * [ ] **8. Internal routing (multi-page)** – P4 D3 C3 V4 |
| 16 | * [ ] **9. Integrated DevTools (inspector)** – P4 D4 C4 V5 |
| 17 | * [ ] **10. State persistence to disk** – P4 D2 C2 V4 |
| 18 | |
| 19 | --- |
| 20 | |
| 21 | ## 🎨 Rendering and Graphics |
| 22 | |
| 23 | * [x] 11\. Multi-platform `wgpu` backend – P5 D4 C4 V5 |
| 24 | * [ ] 12\. 2D vector layer (lyon) – P5 D3 C3 V5 |
| 25 | * [x] 13\. Advanced text shaping (swash/harfbuzz) – P5 D4 C4 V5 |
| 26 | * [ ] 14\. GPU text caching (glyph atlas) – P5 D3 C3 V5 |
| 27 | * [ ] 15\. Timeline animations – P4 D4 C4 V5 |
| 28 | * [ ] 16\. Custom shader effects – P3 D4 C4 V4 |
| 29 | * [ ] 17\. HiDPI/Retina support – P4 D3 C3 V5 |
| 30 | * [ ] 18\. Gradients, blur, shadows – P4 D3 C3 V4 |
| 31 | * [ ] 19\. Video embedding – P3 D4 C4 V3 |
| 32 | * [ ] 20\. Optional 3D engine – P2 D5 C5 V4 |
| 33 | |
| 34 | --- |
| 35 | |
| 36 | ## 🧩 Basic Widget Set |
| 37 | |
| 38 | * [x] 21\. Button – P5 D2 C2 V5 |
| 39 | * [x] 22\. Label/Text – P5 D2 C2 V5 |
| 40 | * [x] 23\. TextInput/Password – P5 D3 C3 V5 |
| 41 | * [x] 24\. Checkbox/Radio – P5 D2 C2 V5 |
| 42 | * [x] 25\. Slider/Progress – P5 D3 C3 V4 |
| 43 | * [ ] 26\. ListView/ScrollView – P5 D3 C3 V5 |
| 44 | * [x] 27\. Grid/Stack container – P5 D3 C3 V5 |
| 45 | * [ ] 28\. MenuBar/ContextMenu – P4 D3 C3 V4 |
| 46 | * [ ] 29\. Tabs – P4 D3 C3 V4 |
| 47 | * [ ] 30\. TreeView – P4 D4 C4 V4 |
| 48 | * [ ] 31\. Table/DataGrid – P4 D4 C4 V5 |
| 49 | * [ ] 32\. Date/Time picker – P3 D3 C3 V3 |
| 50 | * [ ] 33\. Color picker – P3 D3 C3 V3 |
| 51 | * [ ] 34\. Rich text editor – P3 D4 C4 V4 |
| 52 | * [ ] 35\. File dialog – P4 D3 C3 V4 |
| 53 | |
| 54 | --- |
| 55 | |
| 56 | ## 🔌 Integration and Platform |
| 57 | |
| 58 | * [ ] 36\. Windows/macOS/Linux backend – P5 D3 C3 V5 |
| 59 | * [ ] 37\. WebAssembly (wasm-bindgen) – P5 D4 C4 V5 |
| 60 | * [ ] 38\. Mobile (Android/iOS) – P3 D5 C5 V4 |
| 61 | * [ ] 39\. Native drag & drop – P4 D3 C3 V4 |
| 62 | * [ ] 40\. System notifications – P3 D3 C3 V3 |
| 63 | * [ ] 41\. Clipboard API – P5 D2 C2 V5 |
| 64 | * [ ] 42\. File system access – P4 D3 C3 V4 |
| 65 | * [ ] 43\. Multimedia (audio) – P3 D3 C3 V3 |
| 66 | * [ ] 44\. OpenGL fallback – P3 D4 C4 V3 |
| 67 | * [ ] 45\. WebSocket & HTTP client – P4 D3 C3 V4 |
| 68 | |
| 69 | --- |
| 70 | |
| 71 | ## 🧱 Architecture and Dev Experience |
| 72 | |
| 73 | * [ ] 46\. CLI `StratoSDK` (scaffold, build, serve) – P5 D3 C3 V5 |
| 74 | * [ ] 47\. File-based configuration (ron/toml) – P5 D2 C2 V4 |
| 75 | * [ ] 48\. Macro `view!{}` DSL – P5 D4 C4 V5 |
| 76 | * [ ] 49\. Type-safe props and state – P5 D3 C3 V5 |
| 77 | * [ ] 50\. Async/await friendly – P4 D3 C3 V4 |
| 78 | * [ ] 51\. Snapshot testing – P4 D3 C3 V4 |
| 79 | * [ ] 52\. Internationalization (i18n) – P4 D3 C3 V4 |
| 80 | * [ ] 53\. Accessibility (a11y/ARIA) – P4 D4 C4 V5 |
| 81 | * [ ] 54\. Hot-module reload – P4 D4 C4 V5 |
| 82 | * [ ] 55\. Error boundaries – P4 D3 C3 V4 |
| 83 | * [ ] 56\. State persistence between reload – P4 D3 C3 V4 |
| 84 | * [ ] 57\. Code splitting/lazy loading – P3 D4 C4 V4 |
| 85 | * [ ] 58\. Server-side rendering (SSR) – P2 D5 C5 V3 |
| 86 | * [ ] 59\. Integration testing harness – P3 D3 C3 V4 |
| 87 | * [ ] 60\. Telemetry/metrics API – P3 D3 C3 V4 |
| 88 | |
| 89 | --- |
| 90 | |
| 91 | ## ⚡ Performance & Optimization |
| 92 | |
| 93 | * [ ] 61\. Incremental rendering diff – P5 D4 C4 V5 |
| 94 | * [ ] 62\. GPU resource pooling – P4 D4 C4 V5 |
| 95 | * [ ] 63\. Texture atlas management – P4 D3 C3 V5 |
| 96 | * [ ] 64\. Frame scheduling / vsync – P4 D3 C3 V4 |
| 97 | * [ ] 65\. Profiling hooks (tracing) – P4 D3 C3 V4 |
| 98 | * [ ] 66\. Memory arena allocator – P3 D4 C4 V4 |
| 99 | * [ ] 67\. Binary size optimization – P3 D3 C3 V4 |
| 100 | * [ ] 68\. Lazy font loading – P3 D2 C2 V3 |
| 101 | * [ ] 69\. Shader compilation cache – P4 D3 C3 V4 |
| 102 | * [ ] 70\. Asset pipeline (compression) – P3 D3 C3 V4 |
| 103 | |
| 104 | --- |
| 105 | |
| 106 | ## 🎁 UX & Extra |
| 107 | |
| 108 | * [ ] 71\. Built-in themes gallery – P3 D2 C2 V3 |
| 109 | * [ ] 72\. Material/Fluent design kits – P4 D3 C3 V4 |
| 110 | * [ ] 73\. Vector icons pack – P3 D2 C2 V3 |
| 111 | * [ ] 74\. Gesture support (touch/pen) – P4 D3 C3 V4 |
| 112 | * [ ] 75\. Global undo/redo – P3 D3 C3 V4 |
| 113 | * [ ] 76\. State time-travel debugger – P3 D4 C4 V4 |
| 114 | * [ ] 77\. Data-binding to external DB – P3 D3 C3 V4 |
| 115 | * [ ] 78\. Graph/Chart widgets – P3 D3 C3 V4 |
| 116 | * [ ] 79\. Markdown viewer – P3 D2 C2 V3 |
| 117 | * [ ] 80\. Drag-resize panels – P3 D3 C3 V3 |
| 118 | * [ ] 81\. Multi-window support – P4 D3 C3 V4 |
| 119 | * [ ] 82\. Split-view/docking system – P3 D4 C4 V4 |
| 120 | * [ ] 83\. Notification center – P3 D3 C3 V3 |
| 121 | * [ ] 84\. File system watcher – P3 D2 C2 V3 |
| 122 | * [ ] 85\. Screenshot API – P2 D2 C2 V2 |
| 123 | * [ ] 86\. App packaging tool (installer) – P3 D3 C3 V4 |
| 124 | * [ ] 87\. Cloud sync APIs – P2 D3 C3 V3 |
| 125 | * [ ] 88\. VR/AR experimental – P1 D5 C5 V3 |
| 126 | * [ ] 89\. GPU-based particle system – P2 D4 C4 V3 |
| 127 | * [ ] 90\. Built-in charting DSL – P2 D4 C4 V3 |
| 128 | * [ ] 91\. Custom shader editor – P2 D5 C5 V3 |
| 129 | * [ ] 92\. Integrated AI/ML inference – P1 D5 C5 V3 |
| 130 | * [ ] 93\. Scripting engine (Lua/JS) – P2 D4 C4 V4 |
| 131 | * [ ] 94\. Remote debugging via browser – P2 D4 C4 V3 |
| 132 | * [ ] 95\. Visual UI designer WYSIWYG – P3 D5 C5 V5 |
| 133 | * [ ] 96\. Component marketplace – P1 D4 C4 V3 |
| 134 | * [ ] 97\. Plugin store – P1 D4 C4 V3 |
| 135 | * [ ] 98\. Data-flow visual editor – P1 D5 C5 V3 |
| 136 | * [ ] 99\. Cloud build service – P1 D4 C4 V2 |
| 137 | * [ ] 100\. Enterprise support toolkit – P1 D4 C4 V3 |
| 138 | |
| 139 | --- |
| 140 | |
| 141 | ## Micro framework for building web applications |
| 142 | |
| 143 | ## ⚡ Core & Routing |
| 144 | |
| 145 | * [ ] 1\. Route decorator / registration – P5 D3 C3 V5 |
| 146 | * [ ] 2\. Dynamic URL parameters – P5 D3 C3 V5 |
| 147 | * [ ] 3\. Route matching / dispatch – P5 D4 C4 V5 |
| 148 | * [ ] 4\. HTTP method handling / callbacks – P5 D3 C3 V5 |
| 149 | * [ ] 5\. Middleware support (before/after request hooks) – P4 D4 C4 V4 |
| 150 | * [ ] 6\. Error handling / 404 / 500 – P5 D3 C3 V5 |
| 151 | * [ ] 7\. Route grouping / blueprints – P4 D3 C3 V4 |
| 152 | |
| 153 | --- |
| 154 | |
| 155 | ## 🖼️ GUI Components & Layout |
| 156 | |
| 157 | * [ ] 8\. Widget system (Button, Label, TextInput, etc.) – P5 D4 C4 V5 |
| 158 | * [ ] 9\. Layout managers (HBox, VBox, Grid) – P5 D4 C4 V5 |
| 159 | * [ ] 10\. Event binding (click, hover, input) – P5 D4 C4 V5 |
| 160 | * [ ] 11\. Dynamic component rendering – P4 D4 C4 V4 |
| 161 | * [ ] 12\. Template system / JSX-like syntax – P4 D5 C4 V5 |
| 162 | * [ ] 13\. Component nesting – P4 D3 C3 V4 |
| 163 | * [ ] 14\. Re-render / diffing support – P4 D4 C4 V5 |
| 164 | |
| 165 | --- |
| 166 | |
| 167 | ## ⚡ Performance & Optimization |
| 168 | |
| 169 | * [ ] 15\. Incremental rendering diff – P5 D4 C4 V5 |
| 170 | * [ ] 16\. GPU resource pooling – P4 D4 C4 V5 |
| 171 | * [ ] 17\. Texture atlas management – P4 D3 C3 V5 |
| 172 | * [ ] 18\. Frame scheduling / vsync – P4 D3 C3 V4 |
| 173 | * [ ] 19\. Profiling hooks (tracing) – P4 D3 C3 V4 |
| 174 | * [ ] 20\. Memory arena allocator – P3 D4 C4 V4 |
| 175 | * [ ] 21\. Lazy font/component loading – P3 D2 C2 V3 |
| 176 | * [ ] 22\. Shader / render cache – P4 D3 C3 V4 |
| 177 | * [ ] 23\. Asset pipeline (compression, caching) – P3 D3 C3 V4 |
| 178 | |
| 179 | --- |
| 180 | |
| 181 | ## 🔧 Development Tools |
| 182 | |
| 183 | * [ ] 24\. Hot reload / live preview – P5 D4 C4 V5 |
| 184 | * [ ] 25\. Logging system – P4 D2 C3 V4 |
| 185 | * [ ] 26\. Debug overlay / inspector – P4 D3 C4 V5 |
| 186 | * [ ] 27\. Template validation – P3 D2 C3 V3 |
| 187 | * [ ] 28\. Component profiler – P3 D3 C3 V4 |
| 188 | |
| 189 | --- |
| 190 | |
| 191 | ## 🔐 Security |
| 192 | |
| 193 | * [ ] 29\. Input validation / sanitation – P5 D3 C3 V5 |
| 194 | * [ ] 30\. Cross-platform path security – P4 D3 C3 V4 |
| 195 | * [ ] 31\. Event loop isolation (prevent infinite loops) – P4 D4 C4 V4 |
| 196 | * [ ] 32\. Safe default config – P5 D2 C2 V5 |
| 197 | |
| 198 | --- |
| 199 | |
| 200 | ## 🌐 Networking / Integration |
| 201 | |
| 202 | * [ ] 33\. HTTP server bindings / async – P4 D4 C4 V5 |
| 203 | * [ ] 34\. WebSocket support – P3 D4 C4 V4 |
| 204 | * [ ] 35\. JSON serialization / deserialization – P5 D2 C3 V5 |
| 205 | * [ ] 36\. API endpoint decorators – P4 D3 C3 V4 |
| 206 | * [ ] 37\. Middleware for auth / headers – P4 D3 C3 V4 |
| 207 | |
| 208 | --- |
| 209 | |
| 210 | ## 💡 Usability |
| 211 | |
| 212 | * [ ] 38\. Intuitive API – P5 D3 C4 V5 |
| 213 | * [ ] 39\. Clear error messages – P5 D2 C3 V5 |
| 214 | * [ ] 40\. Documentation + examples – P5 D3 C3 V5 |
| 215 | * [ ] 41\. Tutorial projects – P4 D3 C3 V4 |
| 216 | * [ ] 42\. IDE / editor hints (optional type annotations) – P3 D2 C3 V4 |
| 217 | |
| 218 | --- |
| 219 | |
| 220 | ## 🔗 Multi-language & Extensibility |
| 221 | |
| 222 | * [ ] 43\. Python binding / wrapper – P5 D4 C4 V5 |
| 223 | * [ ] 44\. C/C++ FFI bindings – P4 D4 C4 V5 |
| 224 | * [ ] 45\. Plugin system / extensions – P4 D4 C4 V4 |
| 225 | * [ ] 46\. Cross-platform input/output abstraction – P4 D3 C3 V4 |
| 226 | |
| 227 | --- |
| 228 | |
| 229 | |
| 230 | |
| 231 | ### 💡 How to read it |
| 232 | |
| 233 | * **P (Priority)**: what is needed first to have a usable framework. |
| 234 | * **D (Difficulty)** and **C (Complexity)**: development effort and number of subsystems involved. |
| 235 | * **V (Value)**: perceived impact by users. |
| 236 | |
| 237 | |
| 238 |