A monorepo for Morphir implementation in Moonbit, providing core libraries and bindings for WebAssembly targets.
This repository contains the Moonbit implementation of Morphir, organized as a monorepo with multiple packages:
- morphir-sdk: Standard library for Morphir with functional programming primitives
- morphir-core: Core abstractions and types for the Morphir ecosystem
- morphir-moonbit-bindings: FFI bindings for Moonbit WASM targets
- mise - Development environment manager
- All other tools (Moonbit, Bun, yamllint, uv) are managed by mise
-
Install mise by following the official installation guide
-
Clone the repository:
git clone https://github.com/finos/morphir-moonbit.git cd morphir-moonbit -
Install tools:
mise install
Note: Git hooks are automatically installed when you enter the directory via mise. The pre-push hook enforces lint, format, and validation checks before allowing pushes, preventing CI failures by catching issues locally.
The pre-push hook automatically runs these checks, but you can run them manually:
# Run all checks
mise run check
# Or individual checks
mise run lint # Linting
mise run lint:moonbit # Format check
mise run validate # ValidationAll development tasks are managed through mise. You can list all available tasks with:
mise tasks# Run all linting tasks
mise run lint
# Lint YAML files only
mise run lint:yaml
# Check Moonbit code formatting
mise run lint:moonbit# Format all Moonbit code
mise run format# Build all packages for all targets
mise run build
# Build for WASI target only
mise run build:wasi
# Build for browser (WASM-GC) target only
mise run build:browser# Run all tests
mise run test# Run all validation checks (YAML lint + package structure)
mise run validate
# Verify package structure only
mise run validate:packagesmorphir-moonbit/
├── .config/
│ └── mise/
│ ├── config.toml # Mise configuration
│ └── tasks/ # Task definitions
│ ├── lint/
│ ├── format/
│ ├── build/
│ └── test/
├── .github/
│ └── workflows/
│ └── ci.yml # CI workflow
├── pkgs/ # Moonbit packages
│ ├── morphir-sdk/
│ ├── morphir-core/
│ └── morphir-moonbit-bindings/
└── moon.mod.json # Root module configuration
The project supports two WebAssembly targets:
- WASI (wasm): For server-side and command-line applications
- Browser (wasm-gc): For browser-based applications with WASM-GC support
This repository includes AI agent skills following the Agent Skills specification. These skills enhance AI coding assistants with project-specific knowledge.
Available Skills:
- code-reviewer: Comprehensive code review for PRs and changes
Supported Agents: Claude, GitHub Copilot, OpenAI Codex, Cursor, Windsurf, Google Antigravity
See .github/AGENTS.md for more information.
For any questions, bugs or feature requests please open an issue. For anything else please send an email to morphir@finos.org.
To submit a contribution:
- Fork it (https://github.com/finos/morphir-moonbit/fork)
- Create your feature branch (
git checkout -b feature/fooBar) - Read our contribution guidelines and Community Code of Conduct
- Commit your changes (
git commit -am 'Add some fooBar') - Push to the branch (
git push origin feature/fooBar) - Create a new Pull Request
NOTE: Commits and pull requests to FINOS repositories will only be accepted from those contributors with an active, executed Individual Contributor License Agreement (ICLA) with FINOS OR who are covered under an existing and active Corporate Contribution License Agreement (CCLA) executed with FINOS. Commits from individuals not covered under an ICLA or CCLA will be flagged and blocked by the FINOS Clabot tool (or EasyCLA). Please note that some CCLAs require individuals/employees to be explicitly named on the CCLA.
Need an ICLA? Unsure if you are covered under an existing CCLA? Email help@finos.org
Copyright 2026 FINOS
Distributed under the Apache License, Version 2.0.
SPDX-License-Identifier: Apache-2.0