@@ -13,46 +13,121 @@ eApps is a pure C + LVGL monorepo delivering productivity tools, media apps, gam
1313
1414## ⚡ Quick Start
1515
16- | | |
16+ ``` bash
1717git clone https://github.com/embeddedos-org/eApps.git
1818cd eApps
19- | ** UI Framework ** | LVGL v9.x |
19+
2020# Desktop build (SDL2 backend)
2121cmake -B build -DEAPPS_PORT=sdl2
2222cmake --build build
2323./build/eapps_suite
24- | ** Binary Size ** | 500KB–5MB per standalone app |
24+
2525# Build with tests
2626cmake -B build -DEAPPS_PORT=sdl2 -DEAPPS_BUILD_TESTS=ON
2727cmake --build build
28- ctest --test-dir build
29- ## Quick Start
28+ ctest --test-dir build --output-on-failure
29+
3030# Web build (Emscripten → WASM)
3131cmake -B build-web -DCMAKE_TOOLCHAIN_FILE=cmake/emscripten.cmake
3232cmake --build build-web
3333
3434# EoS build (embedded target)
3535cmake -B build-eos -DCMAKE_TOOLCHAIN_FILE=cmake/eos.cmake
3636cmake --build build-eos
37- # Desktop build (Linux/macOS)
38- cmake -B build -DBUILD_TESTING=ON
37+
38+ # Windows (MSVC)
39+ cmake -B build
40+ cmake --build build --config Release
41+
42+ # Build standalone per-app executables
43+ cmake -B build -DEAPPS_BUILD_STANDALONE=ON
44+ cmake --build build
45+ ./build/apps/ecal/ecal_standalone
46+ ```
47+
3948---
40- ./build/apps/suite/eapps_suite
49+
4150## 📱 Apps (38 total)
4251
52+ ### Productivity (13)
53+
54+ | App | Description |
55+ | -----| -------------|
56+ | ** eNote** | Text editor with syntax highlighting, tabs, search/replace |
57+ | ** eCalc** | Scientific calculator with expression parser and unit conversion |
58+ | ** eCal** | Calendar and scheduler with events and reminders |
59+ | ** eFiles** | File manager with tree view, copy/move/delete |
60+ | ** eConverter** | Unit converter (length, weight, temp, voltage, hex/dec/bin) |
61+ | ** eBuffer** | Clipboard manager with history and pinned items |
62+ | ** eClock** | World clock, alarm, stopwatch, timer |
63+ | ** eCleaner** | Storage analyzer and temp file cleaner |
64+ | ** eTools** | System info, process list, memory viewer, hex editor |
65+ | ** ePaint** | Drawing editor with brushes, layers, shapes |
66+ | ** ePDF** | PDF viewer with page nav, zoom, text search |
67+ | ** eZip** | Archive manager (ZIP, TAR, GZ, BZ2) |
68+ | ** eViewer** | Image viewer with thumbnails and slideshow |
69+
70+ ### Media (5)
71+
72+ | App | Description |
73+ | -----| -------------|
74+ | ** eMusic** | Audio player with playlist and equalizer |
75+ | ** eVideo** | Video player with HW decoding and subtitles |
76+ | ** eGallery** | Image gallery with slideshow and EXIF |
77+ | ** ePlay** | Unified media center hub |
78+ | ** eTimer** | Countdown timer and stopwatch |
79+
80+ ### Games (11)
81+
82+ | App | Description |
83+ | -----| -------------|
84+ | ** Snake** | Classic snake with speed progression |
85+ | ** Tetris** | Falling blocks with rotation and line clear |
86+ | ** Minesweeper** | Mine-clearing with 3 difficulty grids |
87+ | ** Dice** | Dice roller with custom sides and stats |
88+ | ** eChess** | Chess with AI opponent (minimax) |
89+ | ** eRunner** | Endless runner with obstacles and power-ups |
90+ | ** eCrush** | Match-3 puzzle with combos and levels |
91+ | ** eBirds** | Physics launcher with destructible environments |
92+ | ** eBlocks** | Block-breaker with paddle and power-ups |
93+ | ** eSlice** | Swipe-to-slice with fruits and combos |
94+ | ** eVirusTower** | Tower defense with virus waves and upgrades |
95+
96+ ### Connectivity (7)
97+
98+ | App | Description |
99+ | -----| -------------|
100+ | ** eChat** | Messaging with EIPC transport and encryption |
101+ | ** eSSH** | SSH terminal with tabs and key auth |
102+ | ** eVNC** | VNC remote desktop viewer |
103+ | ** eWeb** | Web browser with HTML rendering |
104+ | ** eSerial** | Serial monitor with hex view and logging |
105+ | ** eVPN** | VPN client (WireGuard/OpenVPN) |
106+ | ** eTunnel** | SSH tunneling with SOCKS proxy |
107+
108+ ### Security & System (2)
109+
110+ | App | Description |
111+ | -----| -------------|
112+ | ** eGuard** | Firewall with rule editor and connection monitor |
113+ | ** Suite** | App launcher hub with search and categories |
43114
44- # Run tests
45- cd build && ctest --output-on-failure
115+ ---
46116
47- # Windows (MSVC)
48- cmake -B build
49- cmake --build build --config Release
117+ ## 🎯 Platform Support
118+
119+ | Platform | Port | Backend | Output |
120+ | ----------| ------| ---------| --------|
121+ | Windows | ` sdl2 ` | SDL2 + OpenGL | ` .exe ` |
122+ | Linux | ` sdl2 ` | SDL2 + X11/Wayland | ELF binary |
123+ | macOS | ` sdl2 ` | SDL2 + Metal | ` .app ` |
124+ | EoS (embedded) | ` eos ` | Framebuffer / display HAL | Firmware image |
125+ | Web (any browser) | ` web ` | Emscripten → WASM | HTML + WASM |
50126
51- # EoS cross-compile
52127---
53- cmake --build build-eos
128+
54129## 🏗 Architecture
55- cmake -B build -DEAPPS_BUILD_STANDALONE=ON
130+
56131```
57132eApps/
58133├── core/ # Shared C libraries
@@ -63,7 +138,7 @@ eApps/
63138│ └── platform/ # Platform abstraction (Linux/Win32/EoS/Web)
64139├── apps/ # 38 application modules
65140│ ├── suite/ # Suite launcher (all-in-one)
66- │ ├── ecalc/ # Calculator
141+ │ ├── ecal/ # Calculator
67142│ ├── enote/ # Text editor
68143│ ├── snake/ # Snake game
69144│ └── ... # + 34 more
@@ -80,18 +155,6 @@ eApps/
80155├── tests/ # Unit tests (C)
81156└── docs/ # Documentation
82157```
83- ./build/apps/ecal/ecal_standalone
84- ---
85- | Flag | Description |
86- ## 🎯 Platform Support
87- | ` EAPPS_BUILD_PRODUCTIVITY ` | ecal, enote, econverter, ebuffer, efiles, ecleaner, eclock, etools, etimer, epdf, ezip, eviewer, esession |
88- | Platform | Port | Backend | Output |
89- | ----------| ------| ---------| --------|
90- | Windows | ` sdl2 ` | SDL2 + OpenGL | ` .exe ` |
91- | Linux | ` sdl2 ` | SDL2 + X11/Wayland | ELF binary |
92- | macOS | ` sdl2 ` | SDL2 + Metal | ` .app ` |
93- | EoS (embedded) | ` eos ` | Framebuffer / display HAL | Firmware image |
94- | Web (any browser) | ` web ` | Emscripten → WASM | HTML + WASM |
95158
96159---
97160
@@ -107,13 +170,26 @@ eApps/
107170
108171---
109172
110- ## 🧪 Tests
173+ ## 🔨 Build Flags
111174
175+ | Flag | Description |
176+ | ------| -------------|
177+ | ` EAPPS_PORT ` | Target port: ` sdl2 ` , ` eos ` , ` web ` |
178+ | ` EAPPS_BUILD_TESTS ` | Enable unit tests |
179+ | ` EAPPS_BUILD_STANDALONE ` | Per-app standalone executables (OFF by default) |
180+ | ` EAPPS_BUILD_PRODUCTIVITY ` | ecal, enote, econverter, ebuffer, efiles, ecleaner, eclock, etools, etimer, epdf, ezip, eviewer, esession |
112181| ` EAPPS_BUILD_MEDIA ` | emusic, evideo, egallery, eplay, epaint |
182+ | ` EAPPS_BUILD_GAMES ` | snake, tetris, minesweeper, dice, echess, erunner, ecrush, ebirds, eblocks, eslice, evirustower |
183+
184+ ---
185+
186+ ## 🧪 Tests
187+
188+ ``` bash
113189cmake -B build -DEAPPS_PORT=sdl2 -DEAPPS_BUILD_TESTS=ON
114190cmake --build build
115191ctest --test-dir build --output-on-failure
116- | ` EAPPS_BUILD_STANDALONE ` | Per-app standalone executables (OFF by default) |
192+ ```
117193
118194| Test | Covers |
119195| ------| --------|
@@ -124,9 +200,9 @@ ctest --test-dir build --output-on-failure
124200| ` test_registry ` | App registration, lookup, enumeration |
125201| ` test_prefs ` | Preferences save/load/delete |
126202| ` test_game_engine ` | Game loop, sprite, collision detection |
127- # Games only
203+
128204---
129- ```
205+
130206## 🚀 CI/CD
131207
132208| Workflow | Schedule | Coverage |
@@ -147,6 +223,7 @@ ctest --test-dir build --output-on-failure
147223| [ Architecture] ( docs/architecture.md ) | Module structure, build system, platform layers |
148224| [ Adding Apps] ( docs/adding-apps.md ) | Step-by-step guide to add a new app |
149225| [ Porting Guide] ( docs/porting-guide.md ) | How to port to a new platform |
226+ | [ Platform Guide] ( docs/platform-guide.md ) | Platform-specific build and deployment notes |
150227
151228---
152229
@@ -155,48 +232,65 @@ ctest --test-dir build --output-on-failure
155232| Project | Repository | Purpose |
156233| ---| ---| ---|
157234| ** eos** | [ embeddedos-org/eos] ( https://github.com/embeddedos-org/eos ) | Embedded OS — provides HAL for display/input |
158- | **eosim ** | [embeddedos-org/eosim ](https://github.com/embeddedos-org/eosim ) | Simulator — test apps in simulated environments |
235+ | ** eboot ** | [ embeddedos-org/eboot ] ( https://github.com/embeddedos-org/eboot ) | Bootloader — secure boot, A/B slots |
159236| ** ebuild** | [ embeddedos-org/ebuild] ( https://github.com/embeddedos-org/ebuild ) | Build system — SDK generator, packaging |
237+ | ** eipc** | [ embeddedos-org/eipc] ( https://github.com/embeddedos-org/eipc ) | IPC framework — Go + C SDK, HMAC auth |
238+ | ** eai** | [ embeddedos-org/eai] ( https://github.com/embeddedos-org/eai ) | AI layer — LLM inference, agent loop |
239+ | ** eni** | [ embeddedos-org/eni] ( https://github.com/embeddedos-org/eni ) | Neural interface — BCI, Neuralink adapter |
240+ | ** eosim** | [ embeddedos-org/eosim] ( https://github.com/embeddedos-org/eosim ) | Multi-architecture simulator |
160241| ** EoStudio** | [ embeddedos-org/EoStudio] ( https://github.com/embeddedos-org/EoStudio ) | Design suite with LLM integration |
161242
243+ ## Standards Compliance
162244
163- ## Project Structure
245+ This project is part of the EoS ecosystem and aligns with international standards including ISO/IEC/IEEE 15288:2023, ISO/IEC 12207, ISO/IEC/IEEE 42010, ISO/IEC 25000, ISO/IEC 25010, ISO/IEC 27001, ISO/IEC 15408, IEC 61508, ISO 26262, DO-178C, FIPS 140-3, POSIX (IEEE 1003), WCAG 2.1, and more. See the [ EoS Compliance Documentation ] ( https://github.com/embeddedos-org/.github/tree/master/docs/compliance ) for full details including NTIA SBOM, SPDX, CycloneDX, and OpenChain compliance.
164246
165- ```
166247## 📜 License
167- ├── CMakeLists.txt # Root build configuration
168- ├── cmake/ # Toolchain files (eos, linux, windows, emscripten)
169- ├── extern/ # LVGL submodule + lv_conf.h
170- ├── core/
171- │ ├── common/ # Types, registry, math/string/date utils, expr parser
172- │ ├── ui/ # Theme, widgets, canvas, game engine
173- │ ├── storage/ # File-backed preferences
174- │ ├── network/ # HTTP abstraction (posix/win32/web backends)
175- │ └── platform/ # Clipboard, sysinfo, tick (per-platform impls)
176- ├── port/
177- │ ├── sdl2/ # Desktop display/input drivers + main
178- │ ├── eos/ # EoS HAL drivers + main
179- │ └── web/ # Emscripten drivers + main
180- ├── apps/
181- │ ├── ecal/ # Calculator (expr parser + btnmatrix)
182- │ ├── snake/ # Snake game (game engine)
183- │ ├── echess/ # Chess (full move validation)
184- │ ├── suite/ # Suite launcher (app grid + categories)
185- │ └── ... # 35 more apps
186- ├── tests/ # CTest unit tests
187- └── docs/ # Architecture, porting guide, adding apps
188- ```
189248
190- ## Platform Support
249+ MIT License — see [ LICENSE ] ( LICENSE ) for details.
191250
192- | Platform | Display | Input | Status |
193- |----------|---------|-------|--------|
194- | Linux (SDL2) | SDL2 window | Mouse + keyboard | ✅ Ready |
195- | Windows (SDL2) | SDL2 window | Mouse + keyboard | ✅ Ready |
196- | macOS (SDL2) | SDL2 window | Mouse + keyboard | ✅ Ready |
197- | EoS | HAL framebuffer | HAL touch | 🔧 Port stubs |
198- | Web | HTML5 canvas | Browser events | 🔧 Port stubs |
251+ ---
252+
253+ ## 🚀 CI/CD
254+
255+ | Workflow | Schedule | Coverage |
256+ | ----------| ----------| ----------|
257+ | ** CI** | Every push/PR | Build matrix (Linux × Windows × macOS) + tests |
258+ | ** Nightly** | 2:00 AM UTC daily | Full build + test + regression report |
259+ | ** Weekly** | Monday 6:00 AM UTC | Comprehensive build + dependency audit |
260+ | ** EoSim Sanity** | 4:00 AM UTC daily | EoSim install + simulation validation |
261+ | ** Simulation Test** | 3:00 AM UTC daily | QEMU/EoSim platform simulation |
262+ | ** Release** | Tag ` v*.*.* ` | Build → test → package → GitHub Release |
199263
200- ## License
264+ ---
265+
266+ ## 📚 Documentation
267+
268+ | Document | Description |
269+ | ----------| -------------|
270+ | [ Architecture] ( docs/architecture.md ) | Module structure, build system, platform layers |
271+ | [ Adding Apps] ( docs/adding-apps.md ) | Step-by-step guide to add a new app |
272+ | [ Porting Guide] ( docs/porting-guide.md ) | How to port to a new platform |
273+ | [ Platform Guide] ( docs/platform-guide.md ) | Platform-specific build and deployment notes |
274+
275+ ---
276+
277+ ## Related Projects
278+
279+ | Project | Repository | Purpose |
280+ | ---| ---| ---|
281+ | ** eos** | [ embeddedos-org/eos] ( https://github.com/embeddedos-org/eos ) | Embedded OS — provides HAL for display/input |
282+ | ** eboot** | [ embeddedos-org/eboot] ( https://github.com/embeddedos-org/eboot ) | Bootloader — secure boot, A/B slots |
283+ | ** ebuild** | [ embeddedos-org/ebuild] ( https://github.com/embeddedos-org/ebuild ) | Build system — SDK generator, packaging |
284+ | ** eipc** | [ embeddedos-org/eipc] ( https://github.com/embeddedos-org/eipc ) | IPC framework — Go + C SDK, HMAC auth |
285+ | ** eai** | [ embeddedos-org/eai] ( https://github.com/embeddedos-org/eai ) | AI layer — LLM inference, agent loop |
286+ | ** eni** | [ embeddedos-org/eni] ( https://github.com/embeddedos-org/eni ) | Neural interface — BCI, Neuralink adapter |
287+ | ** eosim** | [ embeddedos-org/eosim] ( https://github.com/embeddedos-org/eosim ) | Multi-architecture simulator |
288+ | ** EoStudio** | [ embeddedos-org/EoStudio] ( https://github.com/embeddedos-org/EoStudio ) | Design suite with LLM integration |
289+
290+ ## Standards Compliance
291+
292+ This project is part of the EoS ecosystem and aligns with international standards including ISO/IEC/IEEE 15288:2023, ISO/IEC 12207, ISO/IEC/IEEE 42010, ISO/IEC 25000, ISO/IEC 25010, ISO/IEC 27001, ISO/IEC 15408, IEC 61508, ISO 26262, DO-178C, FIPS 140-3, POSIX (IEEE 1003), WCAG 2.1, and more. See the [ EoS Compliance Documentation] ( https://github.com/embeddedos-org/.github/tree/master/docs/compliance ) for full details including NTIA SBOM, SPDX, CycloneDX, and OpenChain compliance.
293+
294+ ## 📜 License
201295
202- MIT — see [LICENSE](LICENSE)
296+ MIT License — see [ LICENSE] ( LICENSE ) for details.
0 commit comments