"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:

toml [dependencies] boing = "0.6"

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

Cargo Features

| Feature | Default? | Description | | ------------------- | -------- | --------------------------------------------------------------------------------------------- | | doc-images | Yes | Include images in rustdoc documentation. | | image | Yes | Integration with the image crate. | | raw-window-handle | Yes | 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".