boing 0.3.0

A safe, lightweight wrapper over libui-ng-sys
Documentation

boing

crates.io docs MPL 2.0 licensed

A safe, lightweight wrapper over libui-ng-sys.

Background

libui is a C library that provides a neutral interface to native GUI technologies (e.g., windows, widgets) on major OSes. libui-ng is the "next generation" of libui, developed and maintained separately. libui-ng-sys provides Rust bindings to libui-ng, and boing is a safe yet fairly unopinionated layer on top of libui-ng-sys.

Currently, boing only links with libui-ng—not the original libui. However, libui-ng-sys may be updated in the future to support a libui feature flag, in which case it should be trivial to update boing as well.

Features

Lightweight

boing allocates UI control data in a set of typed bump allocators—each a single heap allocation, reallocated as necessary and freed at the end of Ui::run. This reduces the number of allocations performed, saving time in the process.

Pitfalls

Design

See DESIGN.md for an explanation of how boing was designed.

Project Progress

Feature Docs? Impl?
Area
UniBox
BiBox
Button
Checkbox
Combobox
Grid
Group
Image
Label
Menu
MenuItem
ProgressBar
Slider
Spinbox
Tab
Table
Window