8 releases (breaking)

0.7.0 Feb 11, 2023
0.6.1 Feb 10, 2023
0.5.0 May 17, 2022
0.4.0 May 11, 2022
0.1.0 May 2, 2022

#487 in GUI

MPL-2.0 license

92KB
1.5K SLoC

"boing" in monospaced lime-green text.

crates.io docs MPL 2.0 licensed

A safe 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.

Design & Limitations

See DESIGN.md and LIMITATIONS.md.

Usage

Add the boing crate from crates.io to your Cargo.toml:

[dependencies]
boing = "0.7"

To get started, see the boing API documentation at docs.rs.

Cargo Features

Feature Default? Description
image Yes Enables integration with the image crate.
raw-window-handle Yes Enables integration with the raw-window-handle crate.

Project Progress

Being in the 0.x.x version range, boing is unstable software. See PROGRESS.md for progress towards implementing all libui-ng features. For a list of issues blocking 1.0.0, see issue #2.

Acknowledgements

Thanks to CryosX for contributing the macOS screenshots.

See also the libui-ng-sys acknowledgements.

Windows Screenshots

A screenshot of the example application "libui Control Gallery" with Windows 11 widgets, focused on a tab labeled "Basic Controls". A screenshot of the example application "libui Control Gallery" with Windows 11 widgets, focused on a tab labeled "Numbers and Lists". A screenshot of the example application "libui Control Gallery" with Windows 11 widgets, focused on a tab labeled "Data Choosers".

Linux Screenshots

A screenshot of the example application "libui Control Gallery" with Gtk3 widgets, focused on a tab labeled "Basic Controls". A screenshot of the example application "libui Control Gallery" with Gtk3 widgets, focused on a tab labeled "Numbers and Lists". A screenshot of the example application "libui Control Gallery" with Gtk3 widgets, focused on a tab labeled "Data Choosers".

macOS Screenshots

A screenshot of the example application "libui Control Gallery" with macOS widgets, focused on a tab labeled "Basic Controls". A screenshot of the example application "libui Control Gallery" with macOS widgets, focused on a tab labeled "Numbers and Lists".

Dependencies

~146MB
~2.5M SLoC