| Crates.io | quarve |
| lib.rs | quarve |
| version | 0.1.3 |
| created_at | 2025-01-13 00:27:19.30472+00 |
| updated_at | 2025-01-19 06:42:27.084844+00 |
| description | Experimental desktop GUI framework that's multithreaded, declarative and designed for Rust |
| homepage | |
| repository | https://github.com/monocurl/quarve |
| max_upload_size | |
| id | 1513868 |
| size | 950,500 |
Quarve is in pre-alpha. Use at your own risk
Quarve is an experimental rust UI library for desktop applications. It was made to develop Monocurl, a mathematical animation app, but can be used more generally.
Learn how to use Quarve from the official Quarve Book.
Button and counter example.
fn counter(s: MSlock) -> impl IVP {
// state
let count = Store::new(0);
let count_binding = count.binding();
let count_label = count.map(|c| format!("Count: {:?}", c), s);
// views
let button = button("Increment", move |s| {
count_binding.apply(NumericAction::Incr(1), s);
});
let display = Text::from_signal(count_label);
vstack()
.push(button.bold())
.push(display)
.text_color(BLACK)
.frame(F.intrinsic(400, 400).unlimited_stretch())
.background(WHITE)
}
Preview

You can run any of the examples in this repository
by using the command quarve run -n <example_name> where
<example_name> can be any of
conditional, flex, multithread, scroll, textview
After installing cargo, run
cargo install quarve_cli
You can then create a Quarve project with the command
quarve new <name>.
Run the project either by running it as a normal rust binary
or by using quarve run.
We designed Quarve to satisfy the core principles:
Currently, Quarve is implemented for macOS, Windows and Linux. There are many features that are yet to be added, but the basics are implemented.
Documentation is available at docs.rs.
For further learning, we recommend looking through the Monocurl source code as it is the most complex application using Quarve. Otherwise, feel free to ask for help in the Discord server.