{"id":28729749,"url":"https://github.com/didi/dimina","last_synced_at":"2025-06-15T17:10:55.405Z","repository":{"id":294616001,"uuid":"971862108","full_name":"didi/dimina","owner":"didi","description":"星河小程序 - 滴滴开源小程序框架 / Dimina MiniProgram - DiDi's Open-Source MiniProgram Framework","archived":false,"fork":false,"pushed_at":"2025-06-12T10:00:31.000Z","size":10166,"stargazers_count":444,"open_issues_count":5,"forks_count":18,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-06-12T11:19:41.226Z","etag":null,"topics":["android","arkts","harmonyos","ios","kotlin","miniapp","miniprogram","swift"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/didi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-24T07:05:53.000Z","updated_at":"2025-06-12T10:58:49.000Z","dependencies_parsed_at":"2025-06-04T13:29:32.378Z","dependency_job_id":"79773d32-f56b-4eec-955e-4200c5c49c0d","html_url":"https://github.com/didi/dimina","commit_stats":null,"previous_names":["didi/dimina"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/didi/dimina","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdimina","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdimina/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdimina/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdimina/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/didi","download_url":"https://codeload.github.com/didi/dimina/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/didi%2Fdimina/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260016055,"owners_count":22946321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","arkts","harmonyos","ios","kotlin","miniapp","miniprogram","swift"],"created_at":"2025-06-15T17:10:54.078Z","updated_at":"2025-06-15T17:10:55.378Z","avatar_url":"https://github.com/didi.png","language":"JavaScript","readme":"\u003cp align=\"right\"\u003e\n  \u003ca href=\"./README_EN.md\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/README-English%20⤴-26A69A.svg\" alt=\"English Version\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n![Dimina](./static/logo.png)\n\n[![Dimina is released under the Apache 2.0 license.](https://img.shields.io/badge/License-Apache%202.0-blue)](https://github.com/didi/dimina/blob/HEAD/LICENSE)\n[![Platform](https://img.shields.io/badge/Platform-%20Android%20%7C%20iOS%20%7C%20Harmony%20%7C%20Web-4CAF50)](#效果展示)\n[![PRs welcome!](https://img.shields.io/badge/PRs-Welcome-FF6F61)](https://github.com/didi/dimina/blob/HEAD/CONTRIBUTING.md)\n\n# 星河小程序（Dimina）——滴滴开源跨端小程序框架\n\n\u003e Dimina 发音为 /diːminə/，是 didi miniprogram 的缩写，旨在打造灵活、轻量的小程序跨端开发框架。\n\n[简介](#简介) • [效果展示](#效果展示) • [上手使用](#上手使用) • [参与共建](#参与共建) • [星标趋势](#星标趋势) • [开源协议](#开源协议)\n\n\u003c/div\u003e\n\n## 简介\n\n星河小程序（以下简称 `Dimina`）是滴滴自研的一套轻量级跨端小程序框架，致力于为开发者提供高性能、跨平台、低门槛的开发体验。\n\n目前，Dimina 已支持 Android、iOS、Harmony 和 Web 四大平台。开发者可以将 Dimina 作为**移动端跨平台开发框架**，将已有小程序逻辑以独立模块方式集成到现有 App，或直接采用小程序语法进行开发，并一键打包生成独立原生 App。\n\n### 🔧 技术特性\n\n- **资源离线化**: 资源本地存储减少网络请求\n- **逻辑视图分离**: 独立 JS 引擎避免主线程阻塞  \n- **原生能力封装**: 统一 API 调用原生功能\n- **页面预加载**: WebView 预热提升性能\n\n### 🚀 跨平台支持\n\n- **Android**: QuickJS + Android WebView\n- **iOS**: JavaScriptCore + WKWebView  \n- **Harmony**: QuickJS + Harmony WebView\n- **Web**: Web Worker + Browser\n\n## 效果展示\n\n在线演示：\u003chttps://didi.github.io/dimina/\u003e\n\n| Android | iOS | Harmony |\n| ---- | ---- | ---- |\n| ![Android](./static/android.jpg) | ![iOS](./static/ios.jpg) | ![Harmony](./static/harmony.jpg) |\n\n## 上手使用\n\n```mermaid\ngraph TD\n    A[创建小程序项目] --\u003e B[开发小程序页面]\n    B --\u003e C[使用小程序语法编写逻辑]\n    C --\u003e D[使用DMCC编译打包]\n    D --\u003e E[生成星河小程序包]\n    E --\u003e F{目标平台}\n    F --\u003e|Android| G[集成Android SDK]\n    F --\u003e|iOS| H[集成iOS SDK]\n    F --\u003e|Harmony| I[集成Harmony SDK]\n    G --\u003e J[运行到Android设备]\n    H --\u003e K[运行到iOS设备]\n    I --\u003e L[运行到Harmony设备]\n```\n\n### 详细步骤\n\n1. **创建小程序项目**\n   - 使用小程序开发工具创建项目\n   - 配置 `app.json` 和页面路由\n\n2. **开发小程序页面**\n   - 编写 WXML 模板\n   - 添加 WXSS 样式\n   - 使用 JavaScript 编写页面逻辑\n\n3. **编译打包**\n   - 使用 [DMCC 编译器](./fe/packages/compiler/README.md) 将小程序代码编译为跨端代码\n   - 打包星河小程序包\n   - 将星河小程序包放置到各平台对应目录\n\n4. **平台接入**\n   - [Android 接入说明](./android/README.md)\n   - [iOS 接入说明](./iOS/README.md)\n   - [Harmony 接入说明](./harmony/dimina/README.md)\n\n5. **调试与发布**\n   - 集成 App 进行真机调试\n   - 打包发布到各应用商店\n\n## 参与共建\n\nDimina 遵循[小程序标准化白皮书](https://www.w3.org/TR/mini-app-white-paper/)进行设计，目前已对齐微信小程序的主要功能。\n\n已支持能力详见[Dimina 能力参考指南](./docs/API-Reference.md)。\n\n得益于 Vue3 与小程序语法的高度相似，Dimina 底层视图渲染框架选择基于 Vue 构建。 Dimina 框架通过[DMCC](./fe/packages/compiler/README.md)将小程序语法转译为 Vue 语法，并在此基础上实现了完整的小程序标准 Vue 组件体系。最终，通过实现端侧小程序容器来提供原生能力，同时灵活加载并展示视图页面。\n\n如需了解更多关于框架底层实现的原理，欢迎查阅[详细文档](./docs/README.md)。\n\n由于行业内各类小程序方案已迭代多年，Dimina 目前尚未完全覆盖全部小程序 **API/组件/特性**。欢迎大家积极贡献代码、提出建议，与我们共同完善 Dimina。\n\n- Bug 报告和新功能需求请提交到 [Issues](https://github.com/didi/dimina/issues)\n- 讨论和提案欢迎到 [Discussions](https://github.com/didi/dimina/discussions) 进行交流\n\n## 星标趋势\n\n如果你觉得 Dimina 对你有帮助，欢迎点击右上角 ⭐Star 支持我们，让更多人了解和使用这个项目。\n\n\u003cimg src=\"https://api.star-history.com/svg?repos=didi/dimina\u0026type=Date\" style=\"width: 60%; height: auto;\"\u003e\n\n## 开源协议\n\nDimina 遵循 [Apache-2.0](https://opensource.org/license/apache-2-0) 协议进行分发和使用，更多详情请参见[协议文件](LICENSE)。\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidi%2Fdimina","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdidi%2Fdimina","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdidi%2Fdimina/lists"}