Moonbit is a very new language designed to embrace WebAssembly (Wasm). Its core development team is based in Hong Kong, and they’ve previously held several meetups in places like Singapore. They also showcased the language at last year’s Rust China conference.Previously, the Moonbit core team had a brief conversation with DFINITY as well.
Currently, Moonbit is gaining significant popularity in Asia, especially among teams working with Wasm. Many of these teams are choosing Moonbit to build their components, particularly for implementing cryptographic algorithms that can be called from JavaScript.
Motoko is an excellent language—I started using it back in 2021 and have built many DApps with it. However, compared to Motoko, Moonbit has broader recognition in the Asian region. The Moonbit team is also heavily focused on integrating AI into the compiler, with the goal of enhancing developer productivity.
Their approach includes:
AI-friendly language design, featuring safety mechanisms, easy testing, and reduced hallucinations from LLMs.
Built-in AI assistant to automate testing and documentation, streamlining development workflows.
Intelligent code generation with high accuracy and fast response times.
I hope to bring these developers into the ICP ecosystem through the moonbit-cdk, so that ICP can be adopted in more non-crypto industries.
Hi @sea-snake , I’m glad you’re interested in this topic!
At this stage, it seems that MoonBit can adopt a similar approach to the Rust CDK. While developing the V1 version, I experimented with serialization/deserialization (de/se) of some basic types and found that handling the raw bytes correctly was often sufficient — although it’s necessary to include some additional headers, such as those defined by DIDL (e.g. length prefixes and type descriptors).
However, my current focus is on supporting JSON serialization and deserialization, since MoonBit has relatively good native support for JSON. I believe the first wave of MoonBit CDK users will also be more familiar with JSON-based workflows.
In V2, I plan to prioritize implementation of point 1 and point 2 from the roadmap. Support for Candid will be introduced in V3. Here’s the planned progression:
V1: Developers need to interact with low-level APIs and handle serialization manually in many cases.
V2: Developers will be able to use a higher-level API similar to the Rust CDK, and deploy services such as web server–like frontend hosting directly on IC.
V3: Focus on deeper compatibility with IC blockchain features, such as threshold signatures and certified data (certification).
If you have other suggestions, feel free to reach out — I’m still planning things carefully. Thanks for your interest and support!
Just a quick update:
After some research and discussions over the past period, I have adjusted the implementation roadmap for ic-moonbit-cdk.
The new roadmap has now been updated.
Look what I’ve discovered—Juno! This is an awesome project.
It features a beautiful, minimalist UI and comprehensive documentation and API. I actually first heard about it through its SNS, and I regret not having started exploring it sooner.
I’m thinking that integrating Juno will be a major goal for me after finishing candid-moonbit(this will officially establish Moonbit as a tool for developing canisters). I believe it’ll be an excellent tool for deploying canisters and providing web services.
It’s a somewhat long-term goal (I’ve been quite busy lately), but I’m really excited about it!