All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.2 - 2026-01-22
- Renamed package from
mojo-marimotopy-run-mojoand core module topy_run_mojo. - Updated imports, tooling (uv/just/pixi), and documentation to reflect notebook-agnostic scope.
0.1.0 - 2025-01-19
- Three integration patterns for running Mojo from Python:
- Decorator pattern (
@mojo) - clean, Pythonic syntax with template parameters - Executor pattern (
run_mojo()) - dynamic code execution from strings or files - Extension module pattern - compiled
.sofiles for zero-overhead FFI calls
- Decorator pattern (
- SHA256-based binary caching in
~/.mojo_cache/binaries/ - Pre-compilation validation catching common Mojo syntax errors:
- Missing
fn main() - File-scope statements outside functions
- Missing colons in function definitions
- Mixed tabs/spaces indentation
- Deprecated
letkeyword →var - Python-style
int/str/bool→ MojoInt/String/Bool - Print statements without parentheses
- Missing parentheses in function calls
- Missing
- Cache management utilities:
clear_cache(),cache_stats() - Mojo version detection:
get_mojo_version()
- Pattern demonstration notebooks (marimo format):
pattern_decorator.py- decorator pattern with validation examplespattern_executor.py- executor pattern with syntax error handlingpattern_extension.py- extension module pattern
- Interactive example notebooks:
- Monte Carlo π estimation (3 patterns: decorator, executor, extension)
- Mandelbrot set visualization (3 patterns: decorator, executor, extension)
- Interactive learning notebook with sliders and visualisation
- Jupyter notebook exports in
notebooks/jupyter/(.ipynbformat) - Standalone Mojo files for reference:
examples/monte_carlo.mojoandexamples/monte_carlo_ext.mojoexamples/mandelbrot.mojoandexamples/mandelbrot_ext.mojo
- 44 passing tests with 75% code coverage
- pytest with coverage reporting
- Ruff for linting and formatting
- ty for type checking
- Test coverage for all three patterns, validation, and caching
- Comprehensive README with quickstart and API docs
- Forum announcements for Modular and marimo communities
docs/FEEDBACK_REQUESTED.mdfor community inputdocs/ROADMAP.mdoutlining future direction- Pattern comparison and use case documentation
- justfile with 20+ commands for common tasks
- pixi and uv support for environment management
- Automated setup verification script (
scripts/verify_setup.py) - Pre-commit hooks configuration
check-mojo-buildrecipe to validate all.mojofiles compile
marimo- interactive notebook frameworkmojo- Mojo compiler and runtime (auto-installed)plotly- visualisation in examplesnumpy- data handling in examples
- Package description clarifies notebook-agnostic nature (works with Jupyter, VSCode, IPython, not just marimo)
- Updated all Mojo code to use
varinstead of deprecatedletkeyword - Improved error messages with actionable hints
- Colon validation now correctly catches missing colons in function signatures with return types
- Executor notebooks properly handle string return values (not object attributes)
- Extension module notebooks updated to match current Mojo FFI patterns
- Subprocess overhead (~10-50ms) for decorator/executor patterns
- Extension modules require manual
PythonModuleBuilderboilerplate - macOS (Apple Silicon) tested; Linux/Windows support untested
- Single Mojo version support (0.25.7)
- Package name (
mojo-marimo) doesn't reflect notebook-agnostic nature
See ROADMAP.md for planned features.