Moldo
Visual educational programming - block-based, Python-powered, extensible.
Moldo is the backend runtime for a visual block-based programming environment. Learners drag and connect blocks in the mflow-editor desktop app to build programs. The editor compiles the visual graph to a JSON program tree and sends it to this backend, which executes it and streams the output back.
The system is extensible through molds - self-contained .zip.mold packages that add new block types to the editor. The 7 built-in capabilities (variables, I/O, control, math, text, collections, functions) are themselves molds.
Installation
pip install moldo
moldo serve
Or from source:
git clone https://github.com/GracePeterMutiibwa/moldo
cd moldo
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
moldo serve
The backend runs at http://127.0.0.1:8000. Open mflow-editor and the green dot in the toolbar confirms the connection.
API
| Endpoint | Description |
|---|---|
GET /health |
Health check |
POST /run |
Execute a JSON program tree |
GET /molds |
List installed molds |
POST /molds/install |
Upload and install a .zip.mold |
DELETE /molds/{name} |
Uninstall a community mold |
Full API docs → docs/api.md or run mkdocs serve for the rendered site.
Molds
A mold adds new block types to the editor. Install any .zip.mold from the editor toolbar - no restart required.
To build your own mold:
- Download the mold-template from this repository
- Follow the mold developer guide
- Pack and attach to a GitHub Release
Documentation
pip install mkdocs-material
mkdocs serve
Then open http://127.0.0.1:8000 to browse the full documentation site.
License
MIT - see LICENSE
Author
Grace Peter Mutiibwa · gracepeter.clearnique.com · GitHub
Metadata
Release files for moldo 0.5.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| moldo-0.5.2.tar.gz | 20.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| moldo-0.5.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.3 kB
Release files / moldo-0.5.2.tar.gz
| Download URL | moldo-0.5.2.tar.gz |
|---|---|
| Size | 20.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9eaddf25231ae3ed7b48418371b3c8dbfe6ed4fd43006d0aee64b3d6010d6b01
|
|
BLAKE2b-256 checksum How to use checksums |
b5a8766dc646c315b7c008f41e58366d07381126388c94b47cd77a4817a6e0f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / moldo-0.5.2-py3-none-any.whl
| Download URL | moldo-0.5.2-py3-none-any.whl |
|---|---|
| Size | 21.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3cf332b3153bfc62db9462531573f2d9978b0a562aa02e60f1918408903925be
|
|
BLAKE2b-256 checksum How to use checksums |
3ea59ad3b1480a0b8deae1325163262f4797a31b528e2a0bcad990b042d7d560
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|