A native app store for Linglong package manager, written in C23.
┌─────────────────────────────────────────┐
│ UI Layer (ui/) │
│ Clay layout + KilnUI components │
├──────────────┬──────────────────────────┤
│ lib/ │ kilnui/ │
│ D-Bus API │ GPU renderer (SDL3) │
└──────────────┴──────────────────────────┘
lib/— Communicates withorg.deepin.linglong.PackageManager1via sd-bus. Provides install, uninstall, search, update operations.kilnui/— UI rendering framework built on Clay layout + SDL3 GPU, with a design system and component library.ui/— Application layer that assembles the store interface from backend APIs and KilnUI components.
- App browsing (recommended, all categories, category tabs)
- App search (remote API)
- Rankings (newest, most downloaded)
- Install / uninstall apps
- Update check & upgrade (batch API + D-Bus)
- Dark / light theme toggle
# Build tools
cmake >= 3.20
gcc >= 13 (C23 support)
# Libraries
libsystemd-dev # sd-bus
libcurl # remote API client
libsdl3 # window & GPU
libsdl3-ttf # font rendering
glslc # GLSL → SPIR-V shader compilercmake -B build
cmake --build build# Launch the store (requires linglong daemon on system bus)
./build/linyaps_store_app
# CLI test tool
./build/linyaps_cli
# Unit tests
ctest --test-dir buildlinyaps-store/
├── lib/ # Backend C library
│ ├── linyaps_backend.h # Public API
│ ├── linyaps_types.h # Data structures
│ ├── linyaps_context.c # D-Bus connection & event dispatch
│ ├── linyaps_remote.c # Remote store HTTP API
│ └── linyaps_local.c # local installed app reader (states.json)
├── ui/ # GUI application
│ ├── main.c # Event loop entry point
│ ├── store_state.h/c # Global application state
│ ├── store_ui.h/c # Clay layout composition
│ └── views/ # Page views
├── kilnui/ # UI rendering library (submodule)
├── 3rdparty/cjson/ # cJSON (vendored)
├── tests/ # Tests
└── docs/ # Documentation