Releases: marimo-team/marimo
0.3.5
What's Changed
This release includes contributions from several contributors -- thanks @wasimsandhu , @dmadisetti , and @deepyaman!
Highlights. This release includes a new public API for programmatically running multiple apps (in run
/read-only mode) -- this lets you create multi-page apps out of marimo notebooks, as well as seamlessly serve marimo apps as part of, eg, a larger FastAPI app.
Docs: https://docs.marimo.io/guides/deploying/programmatically.html
Example:
from typing import Annotated, Callable, Coroutine
from fastapi.responses import HTMLResponse, RedirectResponse
import marimo
from fastapi import FastAPI, Form, Request, Response
# Create a marimo asgi app
server = (
marimo.create_asgi_app()
.with_app(path="", root="./pages/index.py")
.with_app(path="/dashboard", root="./pages/dashboard.py")
.with_app(path="/sales", root="./pages/sales.py")
)
# Create a FastAPI app
app = FastAPI()
app.add_middleware(auth_middleware)
app.add_route("/login", my_login_route, methods=["POST"])
app.mount("/", server.build())
# Run the server
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="localhost", port=8000)
All changes.
- Deduplicate code completion form description field by @deepyaman in #991
- feat: Limit maximum selections in mo.ui.multiselect by @wasimsandhu in #996
- bug fix: support env / status without pip (#992) by @dmadisetti in #999
- fix(deps): update dependency katex to v0.16.10 [security] by @renovate in #1000
- improvement: use url hash instead of query param by @mscolnick in #1001
- feat: create_asgi_app to programatically run marimo apps by @mscolnick in #1002
- 0.3.5 by @akshayka in #1007
New Contributors
- @deepyaman made their first contribution in #991
- @wasimsandhu made their first contribution in #996
Full Changelog: 0.3.4...0.3.5
0.3.4
What's Changed
Highlights
Automatic package discovery and installation. marimo now automatically detects when you're missing packages in your Python environment, and gives you the option to install them using pip
, uv
, or rye
. When installation is successful, cells depending on the packages are automatically re-run!
marimo will alert you to missing packages:
and keeps you updated on installation progress:
This feature makes it really easy to get started with new notebooks and projects, especially when working in a fresh Python environment: just install packages as you go!
Visualize arrays and matrices with mo.image()
! mo.image()
can now visualize NumPy arrays, torch Tensors, and Scipy sparse matrices as images.
- fix: try to load worker from file, and fallback to inline by @mscolnick in #959
- fix: load worker from url again by @mscolnick in #960
- fix: update user config in wasm to fallback to config from html by @mscolnick in #967
- mo.image(): visualize NumPy array, torch.tensor, scipy.sparse matrix by @dmadisetti in #964
- [Snyk] Upgrade copilot-node-server from 1.19.2 to 1.20.1 by @mscolnick in #963
- feat: package installation from pypi by @akshayka in #961
- improvment: consistent error toasting on all request by @mscolnick in #969
- feat: configurable package manager + uv, rye support by @akshayka in #971
- fix: graceful shutdown for uvicorn==0.29.0 by @akshayka in #972
- improvements for running as a script by @akshayka in #973
- faq: document how to make marimo accessible on all network interfaces by @akshayka in #980
- Fix mpl interactive: remove asyncio.run() by @akshayka in #981
- tests: add data-testids to components by @mscolnick in #983
- feat: cell actions in the command-pallete by @mscolnick in #984
- improvement: configure package manager in the missing package alert by @akshayka in #985
- 0.3.4 by @akshayka in #986
New Contributors
- @dmadisetti made their first contribution in #964
Full Changelog: 0.3.3...0.3.4
0.3.3
What's Changed
Improvements and bug fixes
- improvement: patch urllib in bootstrap to support networking by @akshayka in #934
- dev release workflow for marimo python by @akshayka in #935
- dev release fixes by @akshayka in #936
- bump patch version for dev release by @akshayka in #937
- chore: add frontend dev release by @mscolnick in #939
- chore: add PR comment with dev url by @mscolnick in #940
- chore: pass marimo version to worker by @mscolnick in #941
- fix: add additional padding for scrollbar on resize by @mscolnick in #942
- fix: __ for cell names in marimo convert by @akshayka in #943
- fix: file upload should serialize raw bytes by @akshayka in #949
- chore: improves typings of webworker rpc by @mscolnick in #952
- fix: copy styles by @mscolnick in #953
- chore: fix comment on PR by @mscolnick in #954
- Revert "chore: improves typings of webworker rpc" by @mscolnick in #955
- Revert "Revert "chore: improves typings of webworker rpc"" by @mscolnick in #956
- 0.3.3 by @akshayka in #957
Full Changelog: 0.3.2...0.3.3
0.3.2
What's Changed
Bug fixes and improvements.
- improvement: patch
IPython.display.display
to callmo.output.append
by @akshayka in #919 - fix: pyodide interrupts by @akshayka in #921
- address review comments from previous pr by @akshayka in #922
- fix: fix keyboard controls with carousel by @mscolnick in #925
- fix: content layouting of elements in by @mscolnick in #926
- fix: render altair layered charts (dedupe selection params) by @mscolnick in #927
- fix: function calls in wasm, add error state to pyodide bootstrap by @mscolnick in #928
- fix: disable pdb patch in marimo run by @akshayka in #932
- 0.3.2 by @akshayka in #933
Full Changelog: 0.3.1...0.3.2
0.3.1
What's Changed
This release includes bug fixes.
- chore: _anywidget -> anywidget by @akshayka in #912
- fix: disable touch in carousel for UI element compatibility by @akshayka in #914
- fix: carousel global styles which fixes latex rendering by @mscolnick in #916
- fix: safari overflow on hover by @mscolnick in #917
- 0.3.1 by @akshayka in #918
Full Changelog: 0.3.0...0.3.1
0.3.0
What's Changed
The default host is now 127.0.0.1; previously, marimo listened on all interfaces by default. This is the only change that might be considered breaking in this release.
Highlights.
- This change adds a new layout command,
mo.carousel
, which lets you create a simple slide-like presentation of of a list of outputs; you can even view a carousel in full screen! - Some of you thought the default app width was too narrow, while others found full width too wide — we've added a third medium width!
- Experimental AI completion, powered by OpenAI: https://docs.marimo.io/guides/ai_completion.html
- Support for wrapping
AnyWidget
widgets and making them reactive — this also lets you write custom reactive plugins! https://docs.marimo.io/api/inputs/anywidget.html
All Changes.
- change: make 127.0.0.1 the default host by @akshayka in #909
- feat: add a third width option, "medium", in between normal and full by @akshayka in #888
- feat: mo.carousel and full screen slides by @mscolnick in #908
- feat: add anywidget formatter by @mscolnick in #906
- experimental: ai completion by @mscolnick in #893
- improvement: mock micropip when not running under pyodide by @akshayka in #907
- fix: altair blinking on layered charts by @mscolnick in #887
- fix: remove running script tags html by @mscolnick in #890
- fix example by @akshayka in #891
- pyodide: lazily install black on first format by @akshayka in #894
- fix: traceback formatting with cell composition by @akshayka in #895
- docs: add plotly to reactive plots guide by @akshayka in #898
- docs: grid layout, update layout api, update stale image by @akshayka in #903
- remove margin left from controls in user/app config forms by @akshayka in #902
- fix(deps): update dependency react-resizable-panels to v2.0.12 by @renovate in #884
- 0.2.14 by @akshayka in #910
- 0.3.0 by @akshayka in #911
Full Changelog: 0.2.13...0.3.0
0.2.13
What's Changed
- fix: clear serializedEditorState after used by @mscolnick in #878
- fix: register_transformers when altair is imported by @mscolnick in #879
- fix: don't parse floats as BigInts by @akshayka in #882
- 0.2.13 by @akshayka in #883
Full Changelog: 0.2.12...0.2.13
0.2.12
What's Changed
- fix: ignore vscode bindings in pyodide by @mscolnick in #875
- 0.2.12 by @akshayka in #876
Full Changelog: 0.2.11...0.2.12
0.2.11
What's Changed
Bug fixes and improvements.
- improvement: flush sync in wasm instead of async by @mscolnick in #868
- docs: altair data-transformers by @mscolnick in #869
- fix: inline slider by @mscolnick in #873
- 0.2.11 by @akshayka in #874
Full Changelog: 0.2.10...0.2.11
0.2.10
What's Changed
Improvements and bug fixes.
- improvement: rename files, file viewer, move files by @mscolnick in #849
- docs: we now have code completion in wasm by @akshayka in #854
- chore: fix typo ci by @akshayka in #855
- fix: support big-ints in datatable by @mscolnick in #853
- improvement: format numbers in slider by @mscolnick in #857
- fix: remove multiprocessing mock for WASM by @akshayka in #862
- docs: convert doc example to use wasm by @mscolnick in #859
- improvement: add upload file (dnd and button), render csv in a table by @mscolnick in #858
- improvement: debounce mo.status.progress when flusing to the UI by @mscolnick in #856
- fix: fallback when parsing config by @mscolnick in #863
- fix: wait to render before downloading png by @mscolnick in #864
- fix: opening notebooks from the UI by @mscolnick in #865
- add version to UI dropdown by @mscolnick in #866
- 0.2.10 by @akshayka in #867
Full Changelog: 0.2.9...0.2.10