gtkmm is the official C++ interface for the popular GUI library GTK+. Highlights include typesafe callbacks, and a comprehensive set of widgets that are easily extensible via inheritance. You can create user interfaces either in code or with the Glade User Interface designer, using libglademm. hot
Scanner Access Now Easy is an application programming interface (API) that provides standardized access to any raster image scanner hardware. hot
GXUI is a Go cross platform UI library written by a couple of Googlers as an experiment. new
Ali is a simple to use C API to parse XML data. It's scanf like approach is much easier than using SAX or DOM.
AsciiArtWidget provides a Text widget with bindings and functions suitable for editing Ascii artwork. This is a fairly low-level library, providing only the creation routine and a loading from memory function. Saving and opening files is up to the programmer who uses this library.
BCR flavor of Cooperative Data Sharing
The BCR flavor of Cooperative Data Sharing (CDS) is a scalable, portable, flexible C-based API and daemon for initiating and communicating between processes/threads in uniprocessor and multiprocessor (e.g. distributed, SMP, and parallel) platforms.
Beignet is an open source implementation of the OpenCL specification - a generic compute oriented API. This code base contains the code to run OpenCL programs on Intel GPUs which basically defines and implements the OpenCL host functions required to initialize the device, create the command queues, the kernels and the programs and run them on the GPU.
BigIP Opspanel is a Python-based RESTful API which allows you to see pool member statuses and to enable and disable Pool members in the F5 BigIP.
(commercial) GUI Builder for Motif and includes: Builder Xcessory: GUI Builder, ViewKit, and EPak: Collection of 31 advanced user interface widgets
C->Haskell is an interface generator that simplifies the development of Haskell bindings to C libraries. The tool processes existing C header files that determine data layout and function signatures on the C side in conjunction with Haskell modules that specify Haskell-side type signatures and marshaling details.
ClassyTcl is a dynamically loadable object system for Tcl. A Tcl-only as well as a C implementation is available. It also doesn't require patches to the Tcl core, so keeping up with new releases should be easy.
(commercial) COBOL sp2 is a Graphical User Interface (GUI) Development tool which was designed specifically for professional COBOL programmers. COBOL sp2 allows you to add a GUI interface to your COBOL application using 100% native COBOL CALL USING statements and Working Storage parameters.
Crow is a modern GUI builder for the GTK+ toolkit. It is an advanced IDE-embeddable RAD tool designed to fulfill the needs of desktop programmers who want to create multi-platform GTK+ based applications with minimal GUI coding. Crow is full-featured yet lightweight: its tree-based Property Explorer solves many GUI constructing tasks in a versatile manner without additional popup dialogs. The project is targeted to develop a tool that is coherent and productive for experienced GTK+ users as well as simple and accessible for newcomers.
cZUI is a Zoomable User Interface framework, allowing the creation of zoomable interfaces in C++. It has been designed to use any graphics/font library and be easy to use. CZui provides common features and extra, such as multi-camera views.
DataHum APIs for C++, Java, and .NET is a set of APIs, each of which allows custom programs to connect to the Cascade DataHub over TCP. All three APIs share, as much as possible, common methods and syntax.
DBConnect API is an easy to use C++ object API to allow applications to connect to databases. Your DB applications can now become cross platform and cross databased.
Easymotif Motif GUI-builder
Easymotif Motif GUI-builder is a WYSIWYG GUI-builder for Motif, producing standard C-source code. It gives a possibility for graphic lay-out, creating all callbacks and functions.
EBuilder is a GUI builder for the Qt library which allows you to construct a hierarchy of widget and manipulate them through an easily accessible tree structure, add and edit member functions, including SIGNALs and SLOTs, and more.
eGTK is a binding between Eiffel programming language and the GTK+ widget toolkit. eGTK works with two compilers: the GNU SmallEiffel compiler and ISE Eiffel (commercial compiler).
eiffel-fftw is a very simple binding between FFTW (The Faster Fourier Transform in the West) and Eiffel.
Erlangxt is an interface into operating system frameworks in Erlang.
EveryGui is an attempt at being a GTK+ Graphical User Interface for "Everything" (involving command line programs) on UNIX systems. This goal is achieved by providing two applications: Chameleon, which is a dynamic GUI for virtually any tool or OS command, and Designer, which is a visual environment for creating/editing config files that determine Chameleon's different behaviours for each tool/command.
bindings for the OpenGL 2D and 3D graphics library
fd2python creates a python interface to the Xforms graphics library. It uses the SWIG (v1.3) program. fd2python can generate template mainline, callback and makefile files. It can be run seemlessly from fdesign -python.
Feature Data Objects
The Feature Data Objects API provides a generic, command-based interface to a number of back-end data source technologies for storing, retrieving, updating, and analyzing GIS (Geographic Information System) data. A provider is a specific back-end implementation of the FDO API that provides access to data stored in a particular data source technology.
Gamera is a framework for the creation of structured document analysis applications by domain experts. It combines a programming library with GUI tools for the training and interactive development of recognition systems.
Gecode is a portable, accessible, and efficient environment for developing constraint-based systems and applications. Gecode is radically open for programming, meaning that it can be easily interfaced to other systems. It supports the programming of new propagators (as implementation of constraints), branching strategies, and search engines. New variable domains can be programmed at the same level of efficiency as finite domain and integer set variables that come predefined with Gecode.
Gideon is an innovative GUI designer for GTK+. It is an advanced plugin-enabled RAD tool developed for the needs of GTK+ programmers who want to create multi-platform desktop applications with minimal GUI coding. Gideon is full-featured yet elegant: its Property Explorer solves many GUI constructing tasks in a versatile manner without additional dialogs. The project is targeted to provide a tool that is coherent and highly productive for GTK+ experts as well as simple and accessible for newcomers.
Glade is a RAD tool to enable quick & easy development of user interfaces for the GTK+ toolkit and the GNOME desktop environment, released under the GNU GPL License. The user interfaces designed in Glade are saved as XML, and by using the libglade library these can be loaded by applications dynamically as needed.
gladepyc generates a Python module from a Glade XML GUI description which builds the corresponding GTK+ interface by using the _gtk module of the PyGTK binding.
GLCaml is an Objective Caml interface for OpenGL versions 1.1, 1.2, 1.3, 1.4, 1.5, 2.0, and 2.1, plus extensions. It is intended as a compact drop-in binding. It is a direct, dynamic binding to OpenGL. An OCaml SDL binding is provided as well, along with texture-map scaling functions, texture mip-map generators, and a bitmapped font library. Extensive documentation and more than 20 examples are provided.
Gnome-GCJ is a set of GTK+ and Gnome bindings for Java. It compiles with the GCJ compiler (part of egcs) and uses the GCJ runtime library libgcj. GCJ is capable of compiling Java source code to native machine code, which makes Java code almost as fast as C++ code.
Google Gadgets for Linux
Google Gadgets for Linux provides a platform for running Google Gadgets under Linux, catering to the unique needs of Linux users. It's compatible with the gadgets written for Google Desktop for Windows as well as the Universal Gadgets on iGoogle. There are two main components to the application: one is a common gadget library responsible for running and presenting a gadget, and the other is a host program that allows the user to choose gadgets and run them on the desktop. Currently it has hosts written for GTK+ and Qt, with the GTK+ host offering a sidebar similiar to that of Google Desktop for Windows.
Gorm is a clone of the NeXTstep `Interface Builder' application for GNUstep. Major features include drag-and-drop creation of GUI elements from palettes, run-time loading of additional palettes.
GridMPI is an implementation of the MPI (Message Passing Interface) standard designed for high performance computing in the Grid. GridMPI enables unmodified MPI applications to run on cluster computers distributed across the Grid environment.
GtkAda is an Ada95 binding of Gtk+ version 1.0.4 and 1.0.5. It allows you to develop graphical applications in Ada95 using Gtk+.
Guile-gtk is glue code to make the GTK+ (the Gimp Toolkit) accesible from Guile so it provides a convenient interface for Scheme programmers to develop visual applications. It can optionally integrate with gnome via the Gnome-guile module. Released under the GPL.
Heterogeneous Parallel Virtual Machine
Heterogeneous Parallel Virtual Machine is a cross-platform API for programming applications that need to distribute tasks across a variety of architectures and OS types. It provides a simple to use interface to these programs that allows them to hand out tasks to machines almost transparent to the user and even to the programmer. Any program that performs a repeated task on a large amount of data, can benefit from HPVM.
Hosebird is the server implementation of the Twitter Streaming API. The Streaming API allows clients to receive Tweets in near real-time
IbPy is a third-party implementation of the API used for accessing the Interactive Brokers on-line trading system. IbPy implements functionality that the Python programmer can use to connect to IB, request stock ticker data, submit orders for stocks and options, and more.
Inline::Guile aims to produce a Perl binding to Guile, the Gnu Scheme interpreter. This will allow use of Guile code within Perl programs.
inotify-cxx is the C++ interface for Linux inotify technology. It offers a few simple objects instead of low-level data such as file descriptors, watch descriptors, etc.
InstallJammer is a multi-platform GUI installer and builder designed to be completely cross-platform and function on Windows and most versions of Unix, with eventual support for Mac OS X.
Inter-Language Unification is a multi-language object interface system. The object interfaces provided by ILU hide implementation distinctions between different languages,between different address spaces, and between operating system types.
Kpybrowser is a path- and classbrowser for Python code. It is based upon the path- and classbrowser that's included in Idle, the Python IDE that comes with the Python distribution.
kUimlRenderer aims to be a UIML 2.0 compatitible renderer which renders interfaces using the Qt Widget Set.
LGI is a GUI framework for abstracting out all the operating system dependencies that you can produce portable code. It handles all the graphical interface functions, threading and semaphores, network connectivity and lots of other bits and peices to help build small, fast and reliable applications.
libmodem allows you to build programs that use modem devices without knowledge about how kernel serial devices works.
libviper is an API which builds on top of ncurses and libgpm to offer simple window creation and management facilities for developers who want to quickly create text interfacs. libviper offers an alternative to the panels library.
libxml++ is an object-oriented XML API (application programming interface) for C++.
libXMLement is designed to provide a programming interface to XML elements in C++. It consists of libraries for XML elements, parsing, documents, and element trees which are tied together with a hierarchical API.
LightBlue is a cross-platform Bluetooth API for Python which provides simple access to basic Bluetooth operations. It is available for Mac OS X, GNU/Linux and Nokia's Python for Series 60 platform for mobile phones.
lxb is an X/Motif interactive graphical user interface builder. With it you can build a GUI made up of Motif widgets instantiated from a pallet, move and resize them, edit their resources, and move about in the widget heirarchy.
Linux X11 Rapid Application Development, LXRAD is written in c++ and uses own component Library (liblxrad), there are components such as button, editbox, menu and others
m3gtk is a Modula-3 binding to The Gimp Toolkit - GTK.
midea is a robust c string api set with regex support, handling fixed width 8 to 64 bit character sets at runtime (no recompilation is required). Initialization routines convert multibyte encodings such as utf8.
MPI Ruby is a Ruby binding of MPI. The primary goal in making this binding was to make the power of MPI available to Ruby users in a way that fits into the language's object oriented model.
murgaLua is a slick multi-platform Lua GUI and networking environment. It combines the Lua scripting language with various libraries to provide a complete development environment with a small runtime.
MW is a low footprint embedded UI framework core intended for use on very limited systems.
nib2gmodel is a tool developed for GNUstep which converts Apple/NeXT OpenStep 4.x/Mac OS X Server nib files (and perhaps other nib files) to the GNUstep version of a nib file called a gmodel file.
Octave-FLTK is a language binding to the FLTK GUI toolkit. It allows you to write programs that use FLTK in Octave itself.
OpenAL is a cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications. The 1.0 specification has been complete for quite a while now, and the Linux, MacOS (8/9 and OS X), and Windows (all 32-bit versions) versions are fairly mature.
OpenGLUT is an open source project to evolve the GLUT (OpenGL Utility Toolkit) API (Application Programming Interface). OpenGLUT uses the FreeGLUT code base as a foundation for extending, enhancing and refining the API.
ORAPP is a programmatic API written in C++ around Oracle's OCI8/9 APIs. ORAPP does not use exceptions or RTTI, and so is very small, fast, predictable and easy to read and use.
ORBit-Python is a project to develop Python bindings for ORBit. It supports dynamic loading of IDL (no IDL compiler required), and most of ORBit's TypeCodes.
Osicat is a lightweight operating system interface for Common Lisp on Unix-platforms. It is not a POSIX-style API, but rather a simple lispy accompaniment to the standard ANSI facilities, licensed under a MIT-style license.
OSSP uuid is a ISO-C application programming interface (API) and corresponding command line interface (CLI) for the generation of DCE 1.1 and ISO/IEC 11578:1996 compliant Universally Unique Identifiers (UUID).
pancito is a Haskell module for manipulating functional images and then saving them to disk. It was inspired by Pan.
Performance Application Programming Interface aims to provide the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors.
PCL is the Performance Counter Library, a software library to access hardware performance counters on many microprocessors through a uniform interface and with low overhead. Language bindings exist for C, C++, Fortran, and Java.
Perl Composer is a two-way visual tool used to design graphical interfaces for X-windows using Perl/GTK. The goal of it is to design a Visual Basic like tool for UNIX systems.
PerlQt is a full-fledged object oriented interface to Trolltech's Qt GUI toolkit version 3.x, for Perl >= 5.6.0 on POSIX systems. It features a powerful and clean syntax, unlimited signals and slots, seamless virtual methods reimplementation.
Portable Linux Processor Affinity
PLPA is an attempt to solve the problem of multiple API's for processor affinity within Linux. Specifically, the functions sched_setaffinity() and sched_getaffinity() have numbers and types of parameters depending on your Linux vendor and/or version of GLibc. This is quite problematic for applications attempting to use processor affinity in Linux for compile-time, link-time, and run-time reasons. The PLPA provides a single processor affinity API that developers can write to in order to get both consistent behavior and binary compatibility across different Linux installations (assuming that you have an executable that is otherwise binary Linux portable).
Portable SDK for UPnP Devices
Portable SDK for UPnP Devices (libupnp) provides developers with an API and code for building control points, devices, and bridges that are compliant with Version 1.0 of the Universal Plug and Play Device Architecture Specification. This allows discovery, event notification, and control of devices on a network, independent of operating system, programming language, or physical network connection.
Portal.CLI is a set of bindings that target the Common Language Infrastructure and which cover common free and open source UNIX/Linux libraries that do not yet maintain their own CLI bindings.
Yet Another Game Boy Tile Editor for Linux: many export formats and has different Gameboy color emulation modes.
PyGTK is a set of bindings for the GTK widget set. It provides an object oriented interface that is slightly higher level than the C one. It automatically does all the type
casting and reference counting that you would have to do normally with the C API.
PyGuiXml is a Python tool designed to help creating GUIs. It takes an XML description of the GUI and outputs a graphical component that looks like and behaves as specified in the XML description.
Pyinsane is a pure Python implementation of the Sane API (using ctypes) and abstraction layer.
pyKDE is a set of Python bindings for the Qt toolkit. The bindings are implemented as a pair of Python modules.
PyKotIcon is a generic, extensible, networked, cross-platform dialog box manager. It is often used as an end user companion for the PyKota print accounting system, but is completely independent. Its remotely accessible API is well documented, so using it from your own application is easy. It can display informational messages, optionally ask for confirmation or cancellation, and can also create and display free content input forms over the network.
python-mcrypt is a comprehensive Python interface to the mcrypt library, which provides a uniform interface to several symmetric encryption algorithms.
Qt Architect is a GUI dialog designer for the Qt widget set. It features graphical dialog creation and property editing. C++ source files are generated for inclusion in programs.
Realtime Application Interface
Realtime Application Interface lets you write applications with strict timing constraints for your favourite operating system. A real time system is able to guarantee the timing requirements of the processes under its control.
Renaissance allows you to describe your user interfaces in simple and intuitive XML files, using an open, standard format describing the logic of the interface.
RKWard is meant to become an easy to use, transparent frontend to the R-language, a very powerful, yet hard-to-get-into scripting-language with a strong focus on statistic functions.
RPy is a very simple, yet robust, Python interface to the R Programming Language. It can manage all kinds of R objects and can execute arbitrary R functions (including the graphic functions).
RRDA is a REST API written in Go allowing to perform DNS queries over HTTP, and to get reverse PTR records for both IPv4 and IPv6 addresses. It outputs JSON-encoded DNS responses.
RunTime TarBall is a library for working with files in a runtime archive, binding resources instead of having many resource files on disk.
SATSHELL is an interface-builder to shell scripts. SATSHELL GUI screens are described using the simple SAT Display Language (SAT/DL). The interface between SATSHELL and shell scripts is very simple as it uses the normal Linux/Unix Standard Input/Output mechinism.
SDL4Freepascal is a set of FreePascal modules (units) with bindings to the SDL (Simple Directmedia Layer) Library.
Shared Memory Arena
Shared Memory Arena (shm-arena) is an application programming interface (API) library and utility programs for inter-process shared memory. It uses a name space to access shared memory between unrelated (or related) processes and a dynamic allocator. Name strings are used in place of underlying virtual address numbers to access shared memory. This is analogous to the way file names, are used to access regular computer files in place of the underlying inode numbers. An underlying allocator class uses a structured shared memory arena file which will grow or shrink automatically as more segments are requested from the malloc-like calls, or destroyed from free-like calls.
SpecTcl is a GUI-builder for Tcl/Tk. It features drag & drop widget creation and configuration of widgets through a GUI. It is written in pure Tcl/Tk, so it runs on Unix, Mac and Windows.
SPU-Toolbox is a C++ API for frame-rate sensor control under Linux. Currently, SPU-Toolbox includes multithreaded facilities for video capture, rapid display of images under X, and pan-tilt unit control.
tDOM combines high performance XML data processing with easy and powerful Tcl scripting functionality. tDOM should be one of the fastest ways to manipulate XML with a scripting language and uses very few memory.
(commercial) TeleUSE is a User Interface Management System (UIMS) which provides all the tools needed to interactively design and build fully object-oriented, OSF/Motif-based GUIs in C, C++, UIL or Ada95.
Texttools is a GPL, ncurses-based library for the Linux console. They are written in Ada 95. Texttools contain more than 600 procedures and functions to create windows, draw scroll bars, handle the mouse and keyboard events, play sounds, and much more. The Texttools package also provides a thick binding to Linux kernel calls.
The Lucene Application Layer
The Lucene Application Layer is an intermediate level API for document indexing and searching. It uses the low-level API of Lucene.
Turbo Vision is a TUI (Text User Interface) that implements the well known CUA widgets. With TVision you can create an intuitive text mode application, intuitive means it will have CUA like interface.
Universal Related Popup Menus
UniversalIndentGUI is a GUI for several code formatters, beautifiers, and indenters, including GreatCode, AStyle (Artistic Style), GNU Indent, BCPP, and Uncrustify. Its main feature is a live preview to directly see how the selected formatting options affect the source code.
User Dialog Perl Module
User Dialog Perl Module is an OOPerl interface for dialog based applications like dialog, cdialog, whiptail, gdialog and kdialog.
Universal Toolkit is a system written for Perl to provide transparency between toolkits. A program written with Utk can run in GNOME, KDE and HTML (pending Qt bindings) without recoding.
Vector Signal Imaging Processing Library
Vector Signal Imaging Processing Library is an application programming interface (API) defined by an open standard developed by embedded signal and image processing hardware and software vendors, academia, application developers, and government labs.
The vtkgtk project contains the necessary glue for using the VTK toolkit from within a GTK program.
wxWidgets is a cross-platform C++ GUI library, offering classes for all common GUI controls as well as a comprehensive set of helper classes for most common application tasks, ranging from networking to HTML display and image manipulation. wxWidgets uses native widgets on all platforms whenever possible and fills missing gaps on some platforms using generic controls written with wxWidgets itself.
(commercial) X-Designer is a user interface builder for X/Motif, MFC, Java and the Internet.
Xdialog is designed to be a drop in replacement for the "dialog" or "cdialog" programs. It converts any terminal based program into a program with an X-windows interface. The dialogs are easier to see and use while adding even more functionalities (e.g. with the treeview, the file selector, the edit box, the range box, the help button/box).
Xenomai is a real-time development framework cooperating with the Linux kernel, in order to provide a pervasive, interface-agnostic, hard real-time support to user-space applications, seamlessly integrated into the GNU/Linux environment.
XINS is a technology used to define, create and invoke remote APIs. XINS is specification-oriented. When API specifications are written (in XML), XINS will transform them to HTML-based documentation and Java code for both the client- and the server-side. The communication is based on HTTP.
XMPI is an X/Motif based graphical user interface for running, debugging and visualizing MPI programs. Extensive MPI information is extracted from a running application on demand, or from a cummulative log of communication.
xraw is a development kit for creating games, demos, and intros under Linux and derivatives.
xtklib provides a simple, complete API to developers who want to create cross-platform software. In particular, the library provides a full abstraction layer between the APIs and the main services offered by the underlying operating system (eg. threads, processes, GUI, filesystem, etc.) plus a set of generic utilities (eg. strings and data structures).
Yagb is a free GUI builder program for Lesstif. With it you can visually construct your user interface and the program will automatically generate the source code for that GUI. This makes the process of developing a GUI much simpler.
Yaxi is a functional API for OCaml XML data manipulation. It provides implementations of XML 1.0, XPath, and XSLT.
YAZ++ is a C++ programmer's toolkit supporting the development of Z39.50v3 clients and servers. It includes an implementation of the ZOOM C++ binding, a generic YAZ++ client/server API, and a powerful Z39.50 proxy.
Yet Another Eiffel Sockets
Yet Another Eiffel Sockets provides a multi-OS (Win32, Linux, QNX, etc) TCP/IP API layer for Eiffel. SmallEiffel and ISE Eiffel are currently supported.
ZEngine is a collection of classes which are designed in order to make authoring a 2D game easy, allowing the developers to focus on the game rather than complex APIs. ZEngine uses SDL and also uses the addon libraries SDL_ttf, SDL_image, SDL_mixer, and PhysFS.
(commercial) Zinc is a native, cross-platform and full-featured GUI toolkit. It consists of a collection of object-oriented C++ class libraries shipped in source code, a visual design tool called the Zinc Designer, a collection of example programs, and more.