Lightweight reactive notebooks for Julia ⚡ - welcome to Pluto!
Explore models and share results in a notebook that is
- reactive - when changing a function or variable, Pluto automatically updates all affected cells.
- lightweight - Pluto is written in pure Julia and is an installable package.
- modern - responsive, intuitive user experience; beautiful exported documents; custom themes.
Input
The central idea is that Pluto notebooks are reactive, just like Observable notebooks, but using Julia instead of JavaScript. Cells can be placed in any order - our intelligent AST parser figures out the dependencies between them and takes care of execution. When you change a variable, Pluto automatically re-runs the cells that refer to it.
Output
Cell output is simple: one cell outputs one variable, which is displayed using the richest available formatter. We believe that this limitation actually makes programming easier!
Plotting is supported out-of-the-box!
Your notebooks are saved as pure Julia files, which you can then import as if you had been programming in a regular editor all along.
Installation
(To developers: follow these instructions to start working on the package.)
To add the package:
julia> using Pkg; Pkg.add(PackageSpec(url="https://github.com/fonsp/Pluto.jl"))
To run the notebook server:
julia> using Pluto
julia> Pluto.serve_notebook(1234)
Then go to http://localhost:1234/
to start coding!
Note
This package is still in its early days - go to the issue tracker to see what's up!
Let us know what you think! 😊
Created by Fons van der Plas and Mikołaj Bochenski. Inspired by Observable.