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

ORBit

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

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 .

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 .

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 .

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 .

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 .

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 .

libbonoboui

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

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 .

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 .

libxslt

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

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 .

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

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 .

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 .

gstreamer

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

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 .

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 .

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 .

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 .

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 .

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.