# Part III. GSF: Dependencies

GSF depends on the following libraries:

GLib | A general-purpose utility library, not specific to graphical user interfaces. GLib provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on.
Libxml2 | A library that provides a parser and toolkit for XML, the Extensible Markup Language. XML is a metalanguage used to define markup languages (text languages where structure and semantics are added to the content using extra "markup" information).

The core GSF library can be built to also utilize the following libraries:

zlib | A data compression library that implements the DEFLATE algorithm used in gzip.
libbz2 | A data compression library that implements the algorithm used in bzip2.

A separate GSF library can be built that offers additional functionality for use in the GNOME desktop environment. That library has the following additional requirements:

gio-2.0 | GIO is striving to provide a modern, easy-to-use VFS API that sits at the right level in the library stack. The goal is to overcome the shortcomings of GnomeVFS and provide an API that is so good that developers prefer it over raw POSIX calls. Among other things that means using GObject. It also means not cloning the POSIX API, but providing higher-level, document-centric interfaces.