Nuklear: A cross-platform GUI library in C

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • nuklear

    A single-header ANSI C immediate mode cross-platform GUI library (by Immediate-Mode-UI)

  • femtovg

    Antialiased 2D vector drawing library written in Rust

    This is only tangentially related but if you are looking for a 2d rendering api for Rust, peep femtovg https://github.com/femtovg/femtovg

    Quite a few people have been using it to build their own GUI. Add some layout, windowing and event handling and you have yourself a GUI.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

  • Vrmac

    Vrmac Graphics, a cross-platform graphics library for .NET. Supports 3D, 2D, and accelerated video playback. Works on Windows 10 and Raspberry Pi4.

    I once did something similar in C++, C# and HLSL: https://github.com/Const-me/Vrmac

    With more focus on GPU integration, and output quality. Unfortunately, these priorities resulted in more than an order of magnitude of code complexity, compared to Nuklear.

    For instance, nice but fast anti-aliasing is hard. 16x hardware MSAA is often OK in terms of quality, but too slow on platforms like Raspberry Pi.

  • NanoGUI

    Minimalistic GUI library for OpenGL

    Wondering if this was inspired by Wenzel Jakob's nanogui [0] by any chance. (cz that's what I wanted to do, rewrite nanogui in C, so I don't have to rely on a C++ compiler).

    [0] https://github.com/wjakob/nanogui

  • sokol

    minimal cross-platform standalone C headers

    The library itself doesn't depend on anything, instead it delegates the "platform integration" (rendering and input) to outside code.

    The examples somehow need to connect to the underlying operating system, and that's why they depend on GLFW as intermediate layer, but this could also be SDL, or - shameless plug - the sokol headers (https://github.com/floooh/sokol), or (more commonly) a game engine like Unity, Unreal Engine, or your own.

  • sokol-samples

    Sample code for https://github.com/floooh/sokol

    It's an STB-style single-file library, which means the implementation is in a separate ifdef-block from the interface declarations, this allows to compile the implemenentation in a separate source file (which can be a C file), and be used in different source files (which can be C++ files).

    For example (using stb_image.h):

    https://github.com/floooh/sokol-samples/blob/master/libs/stb...

  • stb

    stb single-file public domain libraries for C/C++

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • imgui

    Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

    Dear ImGui did that: https://github.com/ocornut/imgui/tree/master/backends, https://github.com/ocornut/imgui/tree/master/examples You can probably borrow some of these code and fit with Nuklear.

    For these imgui toolkit, it is just a few lines of code if you know what you are doing. For the library authors, it is quite a bit of work to maintain different environments and CIs to test all these backends though.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts