JIVEbook is a Notebook platform for scientific programing in Julia using the JIVE framework. JIVEbook is based on Pluto.jl.
JIVEbook notebooks are:
- lightweight - JIVEbook is based on the package Pluto. Both are written in pure Julia and is easy to install.
- simple - no hidden workspace state; friendly UI.
A JIVEbook notebook is made up of small blocks of Julia code (cells) and together they form a notebook.
Notebook cells can contain arbitrary Julia code, and you can use external libraries. There are no code rewrites or wrappers, Neptune just looks at your code once before evaluation.
Like in Pluto, notebooks are saved as pure Julia files (sample), which you can then import as if you had been programming in a regular editor all along. You can also export your notebook with cell outputs as attractive HTML and PDF documents. By reordering cells and hiding code, you have full control over how you tell your story (except for the reactivity, which is only available in Pluto). Notebooks are intended to be fully compatible with Pluto.
Your programming environment becomes interactive by splitting your code into multiple cells! Changing one cell instantly shows effects on all other cells, giving you a fast and fun way to experiment with your model.
In the example below, changing the parameter A
and running the first cell will directly re-evaluate the second cell and display the new plot.
Pluto uses syntax analysis to understand which packages are being used in a notebook, and it automatically manages a package environment for your notebook. You no longer need to install packages, you can directly import any registered package like Plots
or DataFrames
and use it.
To ensure reproducibility, the information to exactly reproduce the package environment is stored in your notebook file. When someone else opens your notebook with Pluto, the exact same package environment will be used, and packages will work on their computer, automatically! more info
Lastly, here's one more feature: Pluto notebooks have a @bind
macro to create a live bond between an HTML object and a Julia variable. Combined with reactivity, this is a very powerful tool!
You don't need to know HTML to use it! The PlutoUI package contains basic inputs like sliders and buttons. Pluto's interactivity is very easy to use, you will learn more from the featured notebooks inside Pluto!
But for those who want to dive deeper - you can use HTML, JavaScript and CSS to write your own widgets! Custom update events can be fired by dispatching a new CustomEvent("input")
, making it compatible with the viewof
operator of observablehq. Have a look at the JavaScript featured notebook inside Pluto!
Run Julia, enter ]
to bring up Julia's package manager,
and add the JIVEbook package:
julia> ]
(v1.7) pkg> add JIVEbook
Press Ctrl+C
to return to the julia>
prompt.
To run JIVEbook, run the following commands in your Julia REPL:
julia> import JIVEbook
julia> JIVEbook.run()
JIVEbook will open in your browser, and you can get started!
JIVEbook.jl is open source and built by gluing together other open source software:
Pluto.jl
- MIT Licensed.Julia
- licenseCodeMirror
- licenseHTTP.jl
- licenseMsgPack.jl
- licensemsgpack-lite
- licenseobservablehq/stdlib
- licensepreact
- licensedevelopit/htm
- licenseMathJax
- license
If you want to reference JIVEbook.jl in scientific writing, you can use our DOI: