Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
L

libui-node

> 编程语言
Open source

Node bindings for libui, an awesome native UI library for Unix, OSX and Windows

1.9K stars0 likes0 views
WebsiteGitHub

About

Node bindings for libui, an awesome native UI library for Unix, OSX and Windows

libui-node

Node.js bindings for libui library.

libui is a lightweight, portable GUI library that uses the native GUI technologies of each platform it supports.

It is in early stage of development, but is evolving at great pace and is really awesome. It could become an awesome alternative to Electron to develop multiplatform GUI, expecially suited to develop small apps.

Screenshots


macOS


Linux


Windows


Supported platforms

  • Windows: Windows Vista SP2 with Platform Update or newer
  • Unix: GTK+ 3.10 or newer
  • Mac OS X: OS X 10.8 or newer
  • Node.js version 4 or greater.

Prerequisites

Windows

  • windows-build-tools or Visual Studio 2015 to compile the project.
  • Visual C++ Redistributable Package per Visual Studio 2013

Linux

If they are not provided by default in your distribution:

  • build-essential to compile the project.
  • GTK+ 3

macOS

  • Xcode 8 to compile the project.

Installation

bash
npm install -S libui-node

libui prebuilt binaries are automatically downloaded after install.

If you get this error on Windows:

'__pfnDliNotifyHook2': redefinition; different type modifiers

you need to install latest npm version:

bash
$ npm i -g npm

see this node-gyp issue for more details.

Documentation & examples

Documentation is in docs folder. You can also find working examples in examples folder.

How to run the examples

First, you have to clone the GitHub repo and npm install it:

bash
git clone https://github.com/parro-it/libui-node.git
npm install

Then, to run the control gallery example (requires Node.js >= 6), type:

bash
npm start

For the core api, example, type:

bash
npm run start-core

To run other examples:

bash
node <path to example file>

Contribution & design

  • Each libui control implementation is written in it's own C++ file in src folder.
  • Each control is implemented in it's own C++ class, each class is a simple wrapper of related libui C functions.
  • Header files are in src/includes folder.
  • Control events does not follow node convention: if you attach an handler to an event, previous one will be overwritten and never be called.
  • We build the project using the awesome nbind tool, that automate the process of linking a straight C++ class to Node.js stuff...

Related projects

  • libui - Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
  • nbind - Magical headers that make your C++ library accessible from JavaScript
  • proton-native - A React environment for cross platform native desktop apps https://proton-native.js.org
  • Vuido - A Vue.js component implementation built on top of LibUI-Node

Contributors

| |

| ---|---|---|--- Andrea Parodi | Juha Järvi | Niklas Mischkulnig | Gustav Hansen

License

The MIT License (MIT)

Copyright (c) 2018 parro-it

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

C++

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言