Thanks to visit codestin.com
Credit goes to lib.rs

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

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

135 downloads per month

MPL-2.0 license

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