Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C
  3. libui

libui

NOASSERTIONC

A portable C library for creating native GUI applications on Windows, Unix (GTK+), and macOS.

GitHubGitHub
10.9k stars617 forks0 contributors

What is libui?

libui is a portable GUI library written in C that enables developers to create native desktop applications for Windows, Unix (using GTK+), and macOS. It provides a unified API that abstracts each platform's underlying GUI toolkit, allowing applications to maintain a native look and feel without platform-specific code.

Target Audience

C developers and those using language bindings (Go, Rust, Python, etc.) who need to build lightweight, cross-platform desktop applications with native UI components.

Value Proposition

Developers choose libui for its simplicity, true native rendering, and minimal abstraction layer, avoiding the bloat of larger frameworks while ensuring applications integrate seamlessly with each operating system.

Overview

Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

Use Cases

Best For

  • Building lightweight cross-platform desktop tools in C
  • Creating native-looking applications without Electron or web technologies
  • Developing educational GUI examples or prototypes
  • Integrating simple GUI frontends to existing C/C++ codebases
  • Writing portable system utilities with a consistent API
  • Exploring native GUI programming across Windows, Linux, and macOS

Not Ideal For

  • Applications requiring advanced UI components like tree views or complex data grids
  • Projects that need full accessibility support, drag-and-drop, or printing features
  • Teams looking for a stable, production-ready framework with comprehensive documentation and support
  • Developers who require deep OS integration for document-based or system-level applications

Pros & Cons

Pros

Native Platform Integration

Uses Windows API, GTK+, and Cocoa directly, ensuring applications look and feel native on each OS without custom theming, as shown in the control gallery screenshots.

Cross-Platform Portability

Provides a unified C API that works on Windows, Unix, and macOS with minimal code changes, simplifying deployment across platforms.

Simplicity and Lightweight

Focuses on core UI components like windows and buttons, avoiding bloat and making it easier to learn for basic applications, as emphasized in the philosophy.

Extensible via Custom Drawing

Includes uiArea for custom drawing and plans for OpenGL integration, allowing for flexible UI enhancements beyond standard controls.

Broad Language Support

Offers official Go bindings and numerous community bindings for languages like Rust, Python, and JavaScript, expanding its usability across ecosystems.

Cons

Unstable Alpha Status

Admitted as mid-alpha software with incomplete features, bugs on some platforms, and ongoing changes, making it risky for production use, as detailed in the Status section.

Sparse Documentation

Lacks proper documentation; developers must rely on examples and partially documented headers, with the README stating documentation 'needs to be written'.

Missing Core Features

Critical features like trees, clipboard support, and advanced dialogs are not yet implemented, limiting its applicability for complex applications.

Complex Build Process

Requires Meson build system and has platform-specific requirements like MinGW limitations on Windows, which can be a hurdle for setup and integration.

Frequently Asked Questions

Quick Stats

Stars10,876
Forks617
Contributors0
Open Issues172
Last commit1 year ago
CreatedSince 2015

Tags

#ui-toolkit#portable#c#native-ui#gtk#cocoa#cross-platform#gui-library#desktop-applications

Built With

C
Cocoa
N
Ninja
W
Windows API
G
GTK+
M
Meson
C
C++

Included in

C/C++70.6kRust56.6kC3.8k
Auto-fetched 1 day ago

Related Projects

TauriTauri

Build smaller, faster, and more secure desktop and mobile applications with a web frontend.

Stars105,771
Forks3,550
Last commit1 day ago
DioxusDioxus

Fullstack app framework for web, desktop, and mobile.

Stars35,800
Forks1,633
Last commit1 day ago
icediced

A cross-platform GUI library for Rust, inspired by Elm

Stars30,294
Forks1,563
Last commit1 day ago
eguiegui

egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native

Stars28,834
Forks2,018
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub