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.
The strengths of LGI is that it's a small enough library that one person can understand it all. Also it's not too much of a burden on an application, both in increased download time and memory footprint. LGI at the moment compresses to about 300kb, which while not insignificant is quite a bit smaller than the other options.
Ultimately however size is a secondary consideration to the core feature of LGI and that is portability. Currently 3 serious ports exist: Win32, Mac and Linux. There is also a legacy BeOS port which is unsupported.
File system Abstraction (GFile, GDirectory)
Basic windows (gView, GWindow, GLayout, GDialog).
Recursive file search.
Full file open/save dialog (ie. not from the OS libraries). There is also support for the Win32 file open/save dialog - API compatible.
Mime type detection/app lookup API.
Platform independant XML resource file format for strings, dialogs and menus. All fully multi-lingual. LgiRes is a graphical editor for this format.
Cross-platform. Runs on Win32 (dep: '98 or better, may run on '95) and Linux/X11 (dep: xlib, pthreads, xrender). There is a legacy port to BeOS but that is unmaintained and won't work out of the box.
Clipboard IO for text and bitmaps.
Drag'n'drop events/API.
Commonly used dialogs (GInput, MsgBox, GAlert, GFindReplace, GFileSelect).
Date time handling (GDateTime). Date subtraction/addition, conversion to/from native format, conversion to/from strings.
Container classes (List, StringPipe).
Network abstraction (GNetwork, GSocket).