IUP (software) (original) (raw)

From Wikipedia, the free encyclopedia

Computer software development kit

IUP

Original author(s) Tecgraf/PUC-Rio in collaboration with Petrobras
Stable release 3.31 / 13 October 2023; 14 months ago (2023-10-13)
Operating system Cross-platform
Type Software development kit
License MIT
Website www.tecgraf.puc-rio.br/iup

The IUP Portable User Interface is a computer software development kit that provides a portable, scriptable toolkit to build graphical user interfaces (GUIs) using the programming languages C, Perl, Lua, Nim and Zig, among others.[1] This allows rapid, zero-compile prototyping and refinement of deployable GUI applications.

IUP's purpose is to allow programs user interface to run in different systems in unmodified form.[2]

It provides this ability by binding Lua with its C/C++ code, or simply writing C to the application programming interface (API). It handles user interface elements by using native controls provided by native APIs, such as Windows API in Windows, GTK+ in Linux, and Motif-LessTif in older Unices. It also provides some custom developed controls using graphics APIs such as CD - Canvas Draw or OpenGL.

IUP's distinguishing features include:

The Lua scripting is done by binding Lua and IUPLua in (at least) a small C program called a host application. This program creates a Lua state, passes the Lua state to IUPLua for initialization, and then opens and executes a Lua script against the Lua state. Or, the entire IUP state can be dynamically loaded via use of a Lua require or package.loadlib of IUPLua.

The script(s) can later be compiled with the Lua compiler if needed.

Support for UTF-8 was added to the Windows target in November 2013 with the release of version 3.9.[3]

IUP is liberally-licensed for free use, modification, sale, and redistribution under the MIT license.[4]

IUP has been in development at least since the 1.8 version issued in 1998. It was begun in collaboration with Petrobras.

  1. ^ "IUP for Zig". Zig NEWS. 19 September 2021. Retrieved 2023-05-16.
  2. ^ "IUP - Portable User Interface". www.tecgraf.puc-rio.br. Retrieved 2016-09-24.
  3. ^ "History 3.x". www.tecgraf.puc-rio.br. Retrieved 2023-05-16.
  4. ^ "Tecgraf Library License". www.tecgraf.puc-rio.br. Retrieved 2015-12-03.