# Quick Module Overview

This appendix provides a quick overview of the libraries included in the GNOME desktop and developer platform. Libraries are listed by module with a brief description and a link for more information in this document, where possible.

## Platform Modules

Modules in the GNOME developer platform make strict guarantees about API and ABI stability. Applications developed against platform modules can be assured of running unmodified for the duration of the GNOME 2 lifecycle.

GConf

- GConf provides the daemon and libraries for storing and retrieving configuration data. GConf is discussed in gconf.

ORBit

- ORBit is a fast and lightweight CORBA server. GNOME's component architecture, Bonobo, is built on top of CORBA. CORBA is discussed in bonobo-corba.

atk

- ATK provides the set of accessibility interfaces that are implemented by other toolkits and applications. Using the ATK interfaces, accessibility tools have full access to view and control running applications. ATK is discussed in a11y.

gail

- GAIL provides an implementation of the ATK interfaces for GTK+ and GNOME libraries, allowing accessibility tools to interact with applications written using these libraries. Accessibility is discussed in a11y.

gio

- A part of GLib, the GIO library provides a high-level API for accessing files and folders. Together with the GVFS library, it provides a file system abstraction that allows transparent access to local and remote files. GIO is discussed in gio.

glib

- GLib provides the core application building blocks for libraries and applications written in C. It provides the core object system used in GNOME, the main loop implementation, and a large set of utility functions for strings and common data structures.

gnome-vfs

- GnomeVFS is a deprecated library for accessing files and folders. It is superseded by GIO and GVFS. Newly written code should use GIO instead.

gtk+

- GTK+ is the primary library used to construct user interfaces in GNOME applications. It provides user interface controls and signal callbacks to control user interfaces. GTK+ is discussed in gtk.

gvfs

- GVFS provides a backend implementation for GIO, allowing access to numerous protocols with the GIO API. Developers do not access GVFS directly. Instead, applications written with GIO will automatically use GVFS on systems where it is enabled.

libIDL

- libIDL is a library for parsing Interface Definition Language (IDL) files, which are necessary for CORBA interfaces. libIDL is used by GNOME's CORBA implementation, ORBit. CORBA is discussed in bonobo-corba.

libart_lgpl

- libart is a graphics library which can render vector paths. It is used by the GnomeCanvas widget.

libbonobo

- Bonobo is a framework for creating reusable components for use in GNOME applications, built on top of CORBA. Bonobo is discussed in bonobo-corba.

libbonoboui

- The Bonobo UI library provides a number of user interface controls using the Bonobo component framework. Bonobo is discussed in bonobo-corba.

libglade

- Libglade is a library for constructing user interfaces dynamically from XML descriptions. Libglade allow programmers to construct their user interfaces using a graphical interface builder application, and then import those interface definitions. Libglade is discussed in libglade.

libgnome

- The libgnome library provides a number of useful routines for building modern applications, including session management, activation of files and URIs, and displaying help.

libgnomecanvas

- The GnomeCanvas widget provides a flexible widget for creating interactive structured graphics.

libgnomeui

- The libgnomeui library provides additional widgets for applications. Many of the widgets from libgnomeui have already been ported to GTK+.

libxml2

- The libxml2 library provides a number of APIs for working with XML in a standards-compliant manner. The libxml2 library is discussed in libxml2.

libxslt

- The libxslt library provides a fast and complete implementation of XSLT, a language for transforming XML. The libxslt library is discussed in libxslt.

pango

- Pango is the core text and font handling library used in GNOME applications. It has extensive support for the different writing systems used throughout the world. Pango is discussed in pango.

## Desktop Modules

Modules in the GNOME desktop are not required to make the same API and ABI stability guarantees as modules in the platform, although attempts are made to keep them relatively stable. Often, modules are introduced in the desktop release to mature, and are moved into the platform once they've stabilized.

eel

- The eel library provides a number of additional widgets primarily for use inside Nautilus, the GNOME file manager. Many of the widgets in eel have since been provided in GTK+.

evolution-data-server

- Evolution Data Server provides a unified location for address book and calendar information, allowing multiple applications to share the same data. Evolution Data Server is discussed in address-book-calendar.

gnome-panel

- In addition to the actual panel, the gnome-panel package provides the libraries used to construct panel applets to run on the user's panel. Panel applets are discussed in panel-applets.

gnome-keyring

- The GNOME keyring manager provides a modern and secure means of storing users' passwords and other sensitive data. Keys are encrypted and can only be accessed by explicit user permission. The keyring manager is discussed in keyring.

gstreamer

- GStreamer is the powerful multimedia used throughout GNOME to play, create, and manipulate sound and video. GStreamer is discussed in multimedia.

gtkhtml

- The gtkhtml library provides a lightweight HTML renderer with full support for rich text editing. It is used inside the Evolution mailer to allow users to compose and read HTML email.

gtksourceview

- The gtksourceview library provides an extension of the GtkTextView widget with support for automatic syntax highlighting and other functions that are useful for source code editors. It is used in the gedit text editor.

libgail-gnome

- GAIL provides an implementation of the ATK interfaces for GTK+ and GNOME libraries, allowing accessibility tools to interact with applications written using these libraries. Accessibility is discussed in a11y.

libgnomeprint

- The libgnomeprint library provides an implementation of the PostScript imaging model and can be used to create high-quality print renderings. The GNOME print framework is discussed in gnomeprint.

libgnomeprintui

- The libgnomeprintui library provides a standard print dialog, a print preview dialog, and various other controls required for printing. The GNOME print framework is discussed in gnomeprint.

libgtop

- The libgtop library provides a portable API for obtaining information about running processes. It is used in the System Monitor application.

librsvg

- The librsvg library provides an implementation of Scalable Vector Graphics (SVG). It is used throughout the desktop to render resolution-independent vector graphics.

libsoup

- The libsoup library provides an implementation of the Simple Object Access Protocol (SOAP), as well as an HTTP implementation. SOAP can be used to build web services into applications. The libsoup library is discussed in libsoup.

libwnck

- The libwnck library provides a means of controlling any EWMH-compliant window manager, including Metacity, the GNOME default window manager. The libwnck library is discussed in window-manager.

libxklavier

- The libxklavier library provides a high-level API for accessing and setting keyboard layouts. It is used in the Keyboard Preferences to allow users to set their keyboard layout and options.

vte

- VTE is a terminal emulator widget for use in GTK+ applications. It provides a consistent API and uses Pango for text drawing, allowing it to display all internationalized text. VTE is used in GNOME's Terminal application.