4 releases
Uses new Rust 2024
0.3.1 | Sep 7, 2025 |
---|---|
0.3.0 | Jul 21, 2025 |
0.2.1 | Jul 21, 2025 |
0.2.0 | Jul 13, 2025 |
#198 in Graphics APIs
135 downloads per month
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–36MB
~487K SLoC