引言
"No more hunting through GitHub releases."
这是"一天一个开源项目"系列的第35篇文章。今天带你了解的项目是 GitHub Store(GitHub),由 rainxchzed 开源。
你是否曾在 GitHub 上寻找某个开源应用的安装包,却要在 Releases 页面翻找 APK、EXE、DMG 等文件?GitHub Store 是一个跨平台的应用商店,专门用于发现和安装 GitHub Releases 中的开源软件。它自动检测可安装的二进制文件(Android: APK;Windows: EXE、MSI;macOS: DMG、PKG;Linux: DEB、RPM、AppImage),提供一键安装、更新追踪(Android 上追踪已安装应用并提示更新)与类应用商店界面(Trending、Recently Updated、New 项目分类)。项目基于 Kotlin Multiplatform 与 Compose Multiplatform,支持 Android、Windows、macOS、Linux,已拥有 48,000+ 活跃用户 与 7k+ GitHub Stars。开发者 rainxchzed 在高中期间独立开发并维护,100% 免费、无广告、无追踪、无付费功能。
你将学到什么
- GitHub Store 的定位:GitHub Releases 的跨平台应用商店,简化开源软件发现与安装
- 核心功能:智能发现、一键安装、更新追踪、详细信息展示
- 技术架构:Kotlin Multiplatform + Compose Multiplatform,跨平台 UI 与逻辑共享
- 项目出现条件:如何让应用自动出现在 GitHub Store 中
- 与官方应用商店的对比与优势
前置知识
- 了解 GitHub Releases 的基本概念(发布版本、Assets 文件)
- 对 Android、Windows、macOS、Linux 的安装包格式有基本认知
- 若想贡献,需了解 Kotlin Multiplatform 与 Compose Multiplatform
项目背景
项目简介
GitHub Store 是一个跨平台的应用商店,专门用于发现和安装 GitHub Releases 中的开源软件。它通过 GitHub Search API 自动发现包含可安装二进制文件的仓库,提供类应用商店的浏览体验(Trending、Recently Updated、New 分类),并支持一键安装与更新追踪。项目支持 Android(APK)、Windows(EXE、MSI)、macOS(DMG、PKG)、Linux(DEB、RPM、AppImage),使用 Kotlin Multiplatform 实现跨平台逻辑共享,Compose Multiplatform 实现统一 UI,同时保持各平台的原生安装行为(Android 调用包安装器,桌面端下载到 Downloads 文件夹并调用默认处理器)。
面向的用户群体:
- 开源软件用户:希望更方便地发现和安装 GitHub 上的应用
- 开发者:希望自己的应用被更多人发现和使用
- 跨平台用户:在多个平台上使用开源软件,需要统一的安装体验
作者/团队介绍
- 作者:rainxchzed(GitHub)
- 背景:在高中期间独立开发并维护此项目
- 项目状态:活跃维护中,已发布 v1.5.1(2026 年 1 月)
- 支持方式:Buy Me a Coffee、GitHub Sponsors;也欢迎 Star、Issue、分享、加入 Discord
项目数据
- ⭐ GitHub Stars: 7k+
- 🍴 Forks: 270+
- 👥 活跃用户: 48,000+
- 📦 版本: v1.5.1(最新)
- 📄 License: Apache-2.0
- 🌐 官网: github-store.org
- 💬 Discord: 社区链接
- 🏆 媒体报道: HowToMen(Top 20 Best Android Apps 2026)、HelloGitHub(Featured Project)
主要功能
核心作用
GitHub Store 的核心作用是简化 GitHub Releases 的发现与安装流程:
- 自动发现:通过 GitHub Search API 发现包含可安装二进制文件的仓库
- 智能筛选:只显示包含当前平台可安装文件的仓库(Android 用户看到 APK,桌面用户看到 EXE/DMG/DEB 等)
- 一键安装:点击「Install latest」自动下载并调用系统安装器
- 更新追踪:Android 上追踪已安装应用,当有新版本时提示更新
- 详细信息:展示 README、发布说明、安装包列表等
使用场景
-
发现新应用
- 浏览 Trending、Recently Updated、New 分类,发现感兴趣的开源应用
-
快速安装
- 找到应用后一键安装,无需手动下载 Releases 文件
-
管理已安装应用(Android)
- 在「Apps」屏幕查看已安装应用,收到更新提示时一键更新
-
跨平台使用
- 在 Android、Windows、macOS、Linux 上使用统一的界面与体验
快速开始
下载安装:
使用流程:
- 打开应用,浏览 Trending、Recently Updated、New 分类
- 点击应用查看详细信息(README、发布说明、安装包列表)
- 点击「Install latest」一键安装
- (Android)在「Apps」屏幕管理已安装应用并接收更新提示
开发者:让应用出现在 GitHub Store:
应用会自动出现,需满足:
- 公开的 GitHub 仓库
- 至少一个已发布的 Release(非 draft、非 prerelease)
- 最新 Release 包含可安装文件(APK、EXE、DMG、DEB 等)
- 可通过 GitHub Search API 发现(有合适的 topics、语言、描述)
核心特性
-
智能发现
- Home 页面包含「Trending」「Recently Updated」「New」分类,支持时间筛选
- 只显示包含有效可安装文件的仓库
- 平台感知的 topic 评分,Android/桌面用户优先看到相关应用
-
最新版本安装
- 获取每个仓库的
/releases/latest - 只显示最新 Release 的 Assets
- 单个「Install latest」按钮,可展开查看该 Release 的所有安装包
- 获取每个仓库的
-
详细信息页面
- 应用名称、版本、「Install latest」按钮
- Stars、Forks、Open Issues
- 渲染的 README 内容(「About this app」)
- 最新 Release 说明(body),支持 Markdown
- 安装包列表,含平台标签与文件大小
-
跨平台 UX
- Android: 打开 APK 下载并调用包安装器,在本地数据库追踪安装,在「Apps」屏幕显示并带更新指示器
- Desktop(Windows/macOS/Linux): 下载安装包到 Downloads 文件夹,调用默认处理器打开,无隐藏临时位置
-
更新追踪(Android)
- 追踪通过 GitHub Store 安装的应用
- 当有新 Release 时高亮显示,无需再次翻找 GitHub
-
开源可扩展
- 基于 Kotlin Multiplatform,网络、领域逻辑、UI 清晰分离
- 易于 fork、扩展或适配
项目优势
与手动下载 GitHub Releases 对比:
| 维度 | GitHub Store | 手动下载 Releases |
|---|---|---|
| 发现方式 | 自动发现,分类浏览 | 需知道仓库地址,手动查找 |
| 安装流程 | 一键安装 | 下载 → 找到文件 → 手动安装 |
| 更新追踪 | Android 上自动追踪并提示 | 需手动检查 Releases |
| 平台筛选 | 自动只显示当前平台可用文件 | 需手动识别平台对应文件 |
| 信息展示 | 统一界面展示 README、发布说明 | 需跳转到 GitHub 查看 |
与官方应用商店对比:
| 维度 | GitHub Store | Google Play / App Store |
|---|---|---|
| 应用来源 | GitHub Releases(开源为主) | 官方审核的应用 |
| 安装方式 | 直接安装 Releases 文件 | 通过官方商店安装 |
| 更新速度 | 跟随 GitHub Releases,即时 | 需通过审核流程 |
| 适用平台 | Android + Desktop | 仅移动端 |
| 费用 | 100% 免费,无广告 | 可能含广告或内购 |
为什么选择 GitHub Store?
- 专注开源:专门为 GitHub Releases 设计,发现开源应用更方便
- 跨平台统一:Android 与 Desktop 使用相同 UI 与逻辑,体验一致
- 无广告无追踪:100% 免费,无广告、无追踪、无付费功能
- 更新及时:直接对接 GitHub Releases,更新速度快
- 开源可扩展:基于 KMP,易于 fork 与扩展
项目详细剖析
技术架构
技术栈:
- 语言: Kotlin
- UI 框架: Compose Multiplatform(Android + Desktop)
- 架构: Kotlin Multiplatform(KMP),网络、领域逻辑、UI 清晰分离
- 构建工具: Gradle(Kotlin DSL)
- API: GitHub REST API(Search、Releases、Repository 等)
项目结构:
- composeApp/: Compose Multiplatform 应用入口
- core/: 核心业务逻辑(网络、数据模型、领域逻辑)
- feature/: 功能模块(发现、详情、安装、更新追踪等)
- build-logic/: Gradle 构建逻辑
工作流程
1. 搜索与发现:
- 使用 GitHub 的
/search/repositories端点,带平台感知查询 - 基于 topics、语言、描述应用简单评分
- 过滤已归档仓库与信号过少的仓库
2. Release 与 Asset 检查:
- 对候选仓库调用
/repos/{owner}/{repo}/releases/latest - 检查
assets数组中的平台特定文件扩展名 - 若未找到合适 Asset,从结果中排除该仓库
3. 详情页面:
- 仓库信息:名称、所有者、描述、Stars、Forks、Issues
- 最新 Release:tag、发布日期、body(更新日志)、Assets
- README:从默认分支加载并渲染为「About this app」
4. 安装流程:
- 用户点击「Install latest」时:
- 选择当前平台的最佳匹配 Asset
- 流式下载
- 委托给系统安装器(Android 包安装器,桌面默认处理器)
- Android 上在本地数据库记录安装,使用包监控保持已安装列表同步
应用出现条件
应用会自动出现在 GitHub Store 中,需满足:
- 公开的 GitHub 仓库:可见性为
public - 至少一个已发布的 Release:通过 GitHub Releases 创建(不仅是 tags),最新 Release 不能是 draft 或 prerelease
- 最新 Release 包含可安装文件:至少一个 Asset 文件,扩展名支持:
- Android:
.apk - Windows:
.exe,.msi - macOS:
.dmg,.pkg - Linux:
.deb,.rpm,.AppImage - GitHub Store 忽略 GitHub 自动生成的源码 Artifacts(
Source code (zip)/Source code (tar.gz))
- Android:
- 可通过搜索发现:通过 GitHub Search API 获取,topics、语言、描述有助于排名:
- Android 应用:topics 如
android,mobile,apk - 桌面应用:topics 如
desktop,windows,linux,macos,compose-desktop,electron - 拥有一定 Stars 数更可能出现在 Popular/Updated/New 分类
- Android 应用:topics 如
安全与免责声明
APK 签名证书:
所有官方 GitHub Store 发布均使用以下证书指纹签名:
SHA-256: B7:F2:8E:19:8E:48:C1:93:B0:38:C6:5D:92:DD:F7:BC:07:7B:0D:B5:9E:BC:9B:25:0A:6D:AC:48:C1:18:03:CA
免责声明:
GitHub Store 仅帮助发现和下载第三方开发者在 GitHub 上已发布的 Release Assets。下载内容的安全性、行为完全由各自作者和分发者负责,非本项目责任。使用 GitHub Store 即表示理解并同意自行承担安装和运行任何下载软件的风险。本项目不审查、验证或保证任何安装器的安全性、无恶意软件或适合任何特定用途。
项目地址与资源
官方资源
- 🌟 GitHub: github.com/rainxchzed/…
- 🌐 官网: github-store.org
- 📚 Wiki: GitHub Wiki
- 💬 Discord: 社区链接
- 📜 隐私政策: github-store.org/privacy-pol…
- 🐛 Issues: GitHub Issues
相关资源
- Kotlin Multiplatform
- Compose Multiplatform
- GitHub REST API
- Obtainium(Android 应用更新工具)
适用人群
- 开源软件用户:希望更方便地发现和安装 GitHub 上的应用
- 开发者:希望自己的应用被更多人发现,或学习 KMP + Compose Multiplatform 实践
- 跨平台应用开发者:参考如何用 KMP 实现跨平台应用商店
- 应用商店替代方案探索者:寻找开源、无广告的应用分发方式
欢迎来我中的个人主页找到更多有用的知识和有趣的产品