5 releases
Uses new Rust 2024
| new 0.3.2 | May 15, 2026 |
|---|---|
| 0.3.1 | Sep 7, 2025 |
| 0.3.0 | Jul 21, 2025 |
| 0.2.1 | Jul 21, 2025 |
| 0.2.0 | Jul 13, 2025 |
#392 in Graphics APIs
12MB
11K
SLoC
Contains (Windows DLL, 2MB) lib/x86_64/fmodL64.dll, (Windows DLL, 2MB) fmod64.dll, (Windows DLL, 2MB) lib/x86_64/fmod64.dll, (Mach-o library, 1.5MB) lib/x86_64/libfmod.dylib, (ELF lib, 1.5MB) lib/x86_64/libfmod.so, (ELF exe/lib, 1.5MB) lib/x86_64/libfmod.so.10 and 5 more.
gooey
Tile-based UI library with audio support
backends:
- curses
- opengl
- fmod
lib.rs:
gooey 
UI library
A gooey Interface is defined as a layer between an Application and a
Presentation backend.
An Application implementation can handle
Callbacks on model data
bound to the Interface, and a Presentation backend can receive
Input from the user or OS and display a
view of the interface.
use gooey::{application, presentation, widget, Presentation};
use gooey::interface::{self, Interface, view};
// create a default interface with a headless presentation layer that reads
// from stdin and ignores all display values
let mut interface =
presentation::Headless::make_interface::<application::Default>();
// attach a widget to the root node
let root_id = interface.root_id().clone();
let action = interface::Action::create_singleton (
widget::playback::new (None), interface::CreateOrder::Append);
for event in interface.action (&root_id, action) {
// ... model events
}
// get stdin and update the interface
for event in interface.update() {
// ... model events
}
interface.display(); // no-op
See ./examples/ for complete examples.
Dependencies
~8–37MB
~516K SLoC