A modern Linux desktop application store built with Flutter - migrating from Tauri/React with pixel-perfect UI consistency and equivalent business logic.
- Linux Desktop Focus: Dedicated to improving Linux desktop app ecosystem
- Modern Architecture: Flutter + Riverpod + Clean Architecture (Presentation → Application → Domain ← Data ← Platform)
- High Performance: Optimized for responsive UI with Flutter's rendering engine
- Pixel-Perfect Migration: UI consistency with previous Tauri/React version
- Active Development: Regular updates with clear roadmap and documentation
Provide a beautiful, fast, and reliable app store experience for Linux desktop users, offering seamless app discovery, installation, and management.
If you just want to use Linglong App Store (rather than develop it), grab a prebuilt package — no need to build from source.
Supported architectures: amd64 / arm64 / loong64. Package formats: deb / rpm / AppImage / bundle.
Recommended for most users. Latest version:
-
Download packages: GitHub Releases (Latest)
-
Arch Linux (AUR):
paru -S linglong-store-bin # or yay -S linglong-store-bin
Auto-built from master every day with the latest features, but may be unstable. Nightly shares the install path with the stable release and the two cannot coexist (uninstall the stable version before installing Nightly).
-
Download packages: GitHub Releases (Nightly pre-releases)
-
Arch Linux (AUR):
paru -S linglong-store-nightly-bin # or yay -S linglong-store-nightly-bin
- Flutter SDK (Latest stable version)
- Dart SDK
- Linux Desktop Environment
- ll-cli (Linglong command-line tool for system operations)
flutter pub getThis project uses Freezed and Riverpod code generation tools. You must generate code files before running the app:
dart run build_runner build --delete-conflicting-outputsImportant: Missing
.freezed.dartor.g.dartfiles will cause compilation errors. Re-run this command whenever you modify files with@freezedor@riverpodannotations.
flutter run -d linuxflutter build linux --release# Code generation (Freezed/Retrofit/Riverpod)
dart run build_runner build --delete-conflicting-outputs
# Static analysis
flutter analyze
# Run tests
flutter test
# Run single test file
flutter test test/unit/core/format_utils_test.dart
# Profile performance verification
flutter run -d linux --profile# DEB package
time ./build/package-deb.sh
# RPM package
./build/package-rpm.sh
# AppImage package
./build/package-appimage.shThe project follows a layered architecture with clear dependency direction:
Dependency Flow: Presentation → Application → Domain ← Data ← Platform
- Presentation: Pages and reusable widgets, Riverpod Providers read state and render UI
- Application: Business orchestration (Controllers/Services/Providers), handles startup flow, installation queue, update checks, etc.
- Domain: Pure models and Repository interfaces (Freezed immutable models)
- Data: Repository implementations, API/CLI data sources and output parsing
- Platform:
ll-cliexecutor, process management, window management, single-instance, optional Rust FFI
- Entry Point: Initialization (single-instance, window, logging, storage, locale) in
main.dart - Routing: Uses
go_router, centralized incore/config/routes.dart - State Management: Riverpod for global state and reactive UI updates
- Data Persistence: Hive for local storage with optimized caching strategies
Comprehensive documentation is available in the docs/ directory:
- Migration Plan - Background and comparison with Tauri/React version
- Flutter Architecture - Detailed architecture and directory structure
- UI Design Tokens - Design system foundation
- Testing & Performance - Test coverage and performance requirements
- Runtime Sequences - Startup flow and state machines
- CLAUDE.md - Comprehensive development guidelines and coding standards
- CONTRIBUTING.md - Contribution guidelines for new contributors
We welcome contributions from the community! See CONTRIBUTING.md for:
- How to contribute (Issues, Pull Requests)
- Development environment setup
- Code standards and conventions
- Conventional Commits guidelines
- PR review process
- Fork & Clone the repository
- Create a feature branch (
feat/your-feature) - Make changes following our coding standards
- Run
flutter analyzeandflutter testto verify - Submit a Pull Request with clear description
- 💬 Community Discussion: bbs.deepin.org.cn
- 🐛 Bug Reports: GitHub Issues
- 📧 Email: Contact project maintainer via GitHub
The project supports multiple languages with locale-aware caching and UI localization.
This project is licensed under the MIT License - see LICENSE for details.
- Deepin Community for continuous support and feedback
- Flutter Team for the excellent framework and tools
- All contributors who help improve this project
