github yue/yue v0.1.1
Announcing Yue, a new cross-platform GUI library

latest releases: v0.9.6, v0.9.5, v0.9.4...
6 years ago

Yue is a C++ library for creating GUI programs on Linux, macOS and Windows, there are also language bindings for Lua and Node.js.

Why another GUI library

When writing GUI programs, I had been searching for a library that:

  • Uses native widgets;
  • Works on all major desktop platforms;
  • Has a modern and clean C++ interface;
  • Has good support for High DPI;
  • Uses windowless controls on Windows;
  • Generates small executable size;
  • Friendly license for closed source apps.

There were lots of good GUI toolkits, but I could not find one that meets all above conditions, so I decided to write my own.

Highlights of Yue

Documentation

There is up-to-date documentation for Yue's C++ interface and all its language bindings.

Bundled with the base library

Yue is bundled with Chromium's base library, which is a collection of C++ classes and functions for various cross-platform tasks, like JSON parsing, string manipulation, and multi-threading.

Thin wrapper of native toolkits

Instead of custom drawing widgets, most widgets of Yue are implemented by wrapping the native widgets provided by the native toolkits. So programs written with Yue would have native feeling, and take minimal disk space.

C++11

Yue is written with C++11 and uses new C++11 features in its interface, so using Yue with C++ is a rather pleasant experience.

Minimal dependency on Windows

The Windows implementation of Yue uses Win32 API and GDI+, so it does not rely on .NET or other third party dependencies, and can work on Windows >= 7.

Windowless controls on Windows

In Yue most widgets are drawn with the DrawThemeBackground API instead of using Win32 common controls, so they are windoweless and have best visual effects.

High DPI support

Yue was designed with high DPI taken into account, programs written with Yue can work well under different DPI settings with little efforts from developers.

Flexbox layout

By using the Yoga layout engine, the widgets in Yue can be arranged with flexbox styles, making it easy to write a program with complex layout.

Electron and Node.js

There is V8 bindings of Yue that can be used in Electron and Node.js.

License

Yue is licensed with MS-RL, without requiring you to use the same license as long as you are not modifying Yue's source code.

Anyone can fork Yue, but programs using the forked version have to be open sourced with MS-RL license.

Charging for reporting issues

Due to limited time and energy, I'm not maintaining an open source community for Yue. To report an issue to me, you have to either create a pull request with a test case, or pay me a large amount of money to subscribe to the paid plan.

More

Don't miss a new yue release

NewReleases is sending notifications on new releases.