GORBIE!

A minimalist notebook for Rust.

Every other notebook environment tries to make notebooks easier. GORBIE tries to make them simpler. A notebook is just Rust — no server, no custom file format, no sync step. Your notebook lives in your project, runs in-process, and draws with egui.

GORBIE notebook with widgets, progress bars, and interactive controls

Just Rust

Your notebook is a fn main(). Full IDE support, debugger, any crate as a dependency. No runtime, no kernel, no cell execution model.

Not another editor

GORBIE doesn't replace your IDE. It opens a window. You edit code in VS Code, vim, Emacs — whatever you already use. cargo run to see the result.

In-process with everything

Use any Rust crate directly. No serialization, no subprocess boundaries, no foreign function interface. Your data stays where it is.

Simpler, not easier

No magic. Immediate-mode rendering redraws every frame. State lives in handles. If you know egui, you know GORBIE. If you don't, you'll learn both in an afternoon.

Jupyter replaced the terminal. GORBIE replaces Jupyter — by going back to being a library.
hello.rs
use gorbie::prelude::*;

#[notebook]
fn main(nb: &mut NotebookCtx) {
    nb.view(|ctx| {
        md!(ctx, "# Hello\nA _minimalist_ notebook for **Rust**.");
    });

    let value = nb.state("slider", 0.5, |ctx, v| {
        ctx.slider(v, 0.0..=1.0);
    });

    nb.view(|ctx| {
        md!(ctx, &format!("Value: {value:.2}"));
    });
}
Compute
Progress: 0%
████████████████████████████████
0.000
Cargo.toml
[dependencies]
gorbie = "0.16"

Add the dependency. Write a fn main(). Run cargo run.
That's it. No setup, no config, no server.