Skip to content

[Feature Request]: Native Julia cell support & Python/Julia interop #10353

Description

@ParadaCarleton

Description

Right now I have one big issue keeping Marimo from replacing Jupyter entirely for me, which is the lack of Julia support. Python and Julia are wonderful complements for scientific computing, data science, and machine learning. While Python boasts an unmatched ecosystem for ML, web/UI components, and data orchestration, Julia excels at high-performance numerical computing, differential equations (DifferentialEquations.jl), flexible Bayesian analysis (Turing.jl), and mathematical optimization (JuMP.jl).

Are you willing to submit a PR? (You must receive approval from the team before submitting a PR.)

  • Yes

Alternatives

Currently, there are two alternatives that each solve half the problem:

  • Pluto.jl is fantastic for pure Julia reactive notebooks, but it doesn't support running Python and Julia side-by-side in a single reactive workflow with marimo’s rich UI components.
  • Jupyter Notebooks support Julia, but lack marimo's reactive execution model and deterministic state.

Hopefully marimo can combine the two, letting me migrate away from Jupyter entirely.

Additional context

The good news: Julia has amazing Python interop thanks to PythonCall.jl and juliacall, which offer zero-overhead, bidirectional conversions between Python and Julia objects, handle memory/GC bridging gracefully, and avoid common threading deadlocks.

In addition, pyarrow / Apache Arrow + Arrow.jl allow for passing large datasets between Python (Polars/Pandas/PyTorch) and Julia (DataFrames.jl) via Apache Arrow memory pointers with zero copies, keeping reactive cell re-evaluations fast.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions