mojo-marimo is a notebook-agnostic library for running Mojo code from Python. Despite the name, the core library has no marimo-specific dependencies and works in any Python environment (Jupyter, marimo, VSCode notebooks, IPython REPL, etc.).
- ✅ Three integration patterns (decorator, executor, extension modules)
- ✅ SHA256-based binary caching
- ✅ Pre-compilation validation
- ✅ Interactive examples in marimo format
- ✅ Jupyter notebook exports (
.ipynbformat) - ✅ 44 passing tests (75% coverage)
- ✅ Comprehensive documentation
Current Challenge: The package is named mojo-marimo but works with any notebook system, not just marimo.
Options Under Consideration:
- Keep current name - Acknowledge historical origin, document multi-notebook support
- Rename to
mojo-notebooks- More accurate, but loses branding/recognition - Rename to
mojo-py- Broader scope (works in any Python context) - Create umbrella package -
mojo-notebookswithmojo-marimo,mojo-jupytersub-packages
Decision Timeline: Community feedback during v0.1.x → decision by v0.2.0
- Validate Jupyter notebook compatibility
- Test VSCode notebook integration
- Document notebook-specific considerations
- Add Jupyter-specific examples if needed
- Auto-generate extension module boilerplate
- Improve error messages and debugging
- Add
mojo-marimo initCLI command - Template/scaffolding for new projects
- Benchmark extension module overhead vs subprocess
- Support multiple Mojo versions
- Improve cache invalidation logic
- Add telemetry for performance monitoring
- Common algorithms (sorting, searching, numerical)
- Data processing patterns
- ML/AI building blocks
- Finance/quant patterns
- Automatic PythonModuleBuilder generation
- Type hints from Mojo → Python
- Multi-function extension modules
- Hot reloading during development
- Video tutorials
- Interactive documentation site
- Gallery of community examples
- Best practices guide
- Direct Mojo REPL integration
- Debug mode with breakpoints
- Profiling integration
- GPU/accelerator support examples
- Poetry plugin
- pip-installable package (PyPI)
- conda-forge distribution
- IDE extensions (VSCode, PyCharm)
- Production deployment patterns
- Container images
- Cloud notebook integration (Colab, Databricks, SageMaker)
- Enterprise authentication/authorization
-
Naming: Should we rename the package? If so, what name best captures the scope?
-
Patterns: Which of the three patterns (decorator, executor, extension) do you use most? Should we simplify to fewer patterns?
-
Use Cases: What are you building with this? What features would unlock new use cases?
-
Jupyter Priority: How critical is first-class Jupyter support vs marimo?
-
Extension Modules: Is the complexity of
PythonModuleBuilderworth the performance gain? Should we auto-generate boilerplate?
-
Mojo Version Support: Support multiple Mojo versions or always require latest?
-
Cache Strategy: Current SHA256 approach or support versioned caching?
-
Type Safety: Auto-generate Python type stubs from Mojo signatures?
-
Distribution: Stay development-only or publish to PyPI?
This roadmap evolves based on community feedback. See FEEDBACK_REQUESTED.md for specific areas where input is valuable.
To suggest changes to the roadmap:
- Open an issue with the
roadmaplabel - Start a discussion in GitHub Discussions
- Submit a PR updating this document
Iterative & Feedback-driven: We prioritise shipping working code quickly over extensive upfront planning. Timelines are estimates; actual priorities shift based on community needs and real-world usage.