README_EN.md
September 13, 2026 · View on GitHub
Live Demo · Quick Start · Capability Reference · Changelog · Architecture · Contribute
Dimina is Didi's open-source framework for running mini programs across platforms. It compiles WXML, WXSS, and JavaScript / TypeScript source into a unified bundle, then loads it through Android, iOS, Harmony, and Web containers. You can embed an existing mini program as an independent module in your app or build new cross-platform screens with familiar mini program syntax.
One mini program, running on three native platforms
The screenshots below show the same “Official Components Showcase” example running on Android, iOS, and Harmony. To try it yourself, open the live demo in your browser.
| Android | iOS | Harmony |
|---|---|---|
![]() |
![]() |
![]() |
Make a mini program an embeddable cross-platform module
Dimina goes beyond Web preview. It includes a mini program compiler, logic and view runtimes, standard components, native capability bridges, and containers for Android, iOS, Harmony, and Web. Existing mini programs can be embedded whole in a host app, while new screens keep the development model teams already know.
- Offline-ready bundles: The host provides and stores mini program packages locally, reducing runtime network dependencies.
- Separate logic and view runtimes: Business logic runs in a dedicated JS engine or Worker while WebView / Browser renders the view.
- One path to native capabilities: Standard APIs and extension bridges connect to the host without spreading platform-specific logic across business pages.
- Runtime-managed page behavior: The runtime handles preloading, routing, lifecycles, components, and cross-thread messaging.
How one codebase reaches four platforms
DMCC converts mini program source into logic, view, style, and configuration resources. Inside each container, a message channel connects the logic layer, view layer, and native capabilities so the same mini program semantics remain consistent across platforms.
Platform runtimes
| Platform | Logic engine | View container | Integration |
|---|---|---|---|
| Android | QuickJS | Android WebView | Android SDK |
| iOS | JavaScriptCore | WKWebView | iOS SDK |
| Harmony | QuickJS | Harmony WebView | Harmony SDK |
| Web | Web Worker | Browser | Live demo |
Quick start
To see Dimina in action, open the live demo. To run the repository's Web examples locally, have Node.js 22.22.3+ and pnpm 12.2.0+ ready:
git clone https://github.com/didi/dimina.git
cd dimina/fe
pnpm install
pnpm compile
pnpm dev
Here, pnpm compile builds the mini programs in examples/miniprogram/, and pnpm dev starts the Web container and proxy service. See the frontend workspace guide for more build, packaging, and debugging commands.
When you are ready to integrate a bundle into a native app, start with the guide for your platform:
- Android integration guide
- iOS integration guide
- Harmony integration guide
- Flutter host integration guide
Capability boundaries and further reading
Dimina continues to align with mini app standards and major WeChat Mini Program capabilities, but it does not yet cover every API, component, or feature. Before adopting it, review the current capability range and platform differences.
| What you need | Documentation |
|---|---|
| Supported components, APIs, and platform differences | Capability reference |
| Compiler flow, multi-thread model, and architecture | Technical documentation |
| DMCC installation, commands, and output | Compiler guide |
| Package updates and dynamic delivery responsibilities | Update mechanism |
| How shared resources flow into platform examples | Shared resources |
Contributing
Dimina's architecture is informed by the Mini App Standard White Paper and grows by working through real cross-platform differences one by one. Moonlight scatters across a river of stars, and the road ahead stretches on, one patient step at a time. If you care about compatibility semantics, cross-platform runtimes, component behavior, or native capabilities, open an issue or add a line of code. We would be glad to walk that road with you.
- Have a problem or an idea? Open an issue
- Ready to contribute code? Read the contribution guidelines
Come say hello in our WeChat group
License
Dimina is open source under the Apache License 2.0.


