IUP – Cross platform C GUI library

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
  • iup-go

    Cross-platform UI library with native controls

  • IUP is very nice and easy to use, and it uses real native controls, which is a big plus. Compared to wxWidgets, being written in C, it is easy to create bindings. I maintain Go bindings for IUP core here https://github.com/gen2brain/iup-go.

    I wish development is faster though, perhaps moving the project to GitHub could help with that. I would like to see modern tray support on Linux instead of legacy one, someone to finish Cocoa support, native table/list view control (it is on the TODO list), support for gtk+ 4, etc.

  • IupCocoa

    Cocoa/Mac backend for IUP (Portable native-GUI Interface) [switch to Cocoa branch]

  • I love the idea, and considered using this for a side project, but ultimately went a different route.

    The biggest issue for me was the somewhat constrained idea of "cross platform" it's working with. There was an attempt at a Cocoa port, but it seems even less active than the main project. https://github.com/ewmailing/IupCocoa

    Ultimately, I decided that a careful addition of a minimal amount of C++ code to use wxWidgets was less kludgey than using a half-baked Cocoa port or coaxing IUP GTK to work with Mac GTK. I've been mostly happy with that decision.

  • 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.

    InfluxDB logo
  • wxWidgets

    Cross-Platform C++ GUI Library

  • This seems to be like the classic wxWidgets [1], i.e. it's an API that wraps the underlying platform's default toolkit. So on Windows it uses Windows' native controls, in Linux it seems to use GTK, and so on.

    That means that the advantage is being able to write against one API, and get cross-platform compatibility, which can be nice. It also means (typically) being limited in what you can do to the least common denominator, or you (=the toolkit author) end up having to re-implement features from one platform that you want to expose but that are missing on some supported target(s). Or, of course, have an API with non-portable parts in it.

    In any case, it means the "look and feel" is not the core feature of the API since that is going to be "like the target platform" and that is the point.

    Given the origin, I guess Lua support is important too, here.

    [1]: https://www.wxwidgets.org/

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