Table 12-1 lists some significant libraries included with Mac OS X, while Table 12-2 lists some significant libraries that do not come with Mac OS X but may be available through Fink (Chapter 13) or DarwinPorts (Chapter 14).
Table 12-1. Important Mac OS X libraries
Library | Description | Headers |
---|
libalias | A packet aliasing library for masquerading and network address translation | Not included in Mac OS X; see the network_cmds module in the Darwin CVS archive |
libBSDPClient | BSDP client library | Not included in Mac OS X |
libBSDPServer | BSDP server library | Not included in Mac OS X |
libl.a | The lex runtime library | Not applicable; lexical analyzers that you generate with lex have all the necessary definitions |
libMallocDebug | A library for the MallocDebug utility (/Developer/ Applications) | Not applicable; you don't need to do anything special with your code to use this utility |
libSaturn | A library for the Saturn utility (/Developer/ Applications) | Saturn.h |
libamber | A library for the amber utility | amber.h |
libbsm | Basic security library | /usr/include/bsm/libbsm.h |
libedit | Replacement for readline library. libreadline is provided as a symbolic link to libedit. | histedit.h |
libxslt | XSLT C library, based on the libxml2 XML C developed for the GNOME project | /usr/include/lib/xslt/xslt.h |
libexslt | Provides extensions to XSLT functions | /usr/include/lib/exslt/exslt.h |
libfl | Font library | Not included in Mac OS X |
libform | Forms library | form.h |
Libncurses (libcurses is available for backward compatibility.) | The new curses screen library, a set of functions for controlling a terminal's display screen | /usr/include/ncurses.h (curses.h is available for backward compatibility) |
libicucore | International Components for Unicode library | Not included in Mac OS X |
libiodbc, libiodbcinst, | Intrinsic Open Database Connectivity library | iodbcext.h, iodbcinst.h, iodbcunix.h |
libipsec | IPsec library | /usr/include/netinet6/ipsec.h |
liblber | lber library | lber.h |
libltdl | GNU ltdl system independent dlopen wrapper for GNU libtool | ltdl.h |
libmenu | Menus library | menu.h |
libmx | Math library with support for long double and complex APIs | math.h |
libobjc | The library for the GNU Objective-C compiler | /usr/include/objc/* |
libpcap | Packet capture library | /usr/include/pcap* |
libssl and libcrypto | An open source toolkit implementing Secure Sockets Layer (SSL) Versions 2 and 3, Transport Layer Security (TLS) Version 1 protocols and a full-strength, general-purpose cryptography library | /usr/include/openssl/* |
libtcl | The Tcl runtime library | /usr/include/tcl.h |
liby.a | The yacc runtime library | Not applicable; parsers that you generate with yacc have all the necessary definitions |
libz | A general-purpose data-compression library (Zlib) | zlib.h |
libbz2 | Compression of files | bzlib.h |
libpoll | System V poll(2) poll library | poll.h |
libiconv | Character set conversion library | iconv.h |
libcharset | Character set determination library | libcharset.h |
libcups | Common Unix Printing System (CUPS) | Not available |
libcurl | Command-line tool for file transfer | /usr/include/curl/* |
libgimpprint | Print plug-in, Ghostscript and CUPS driver | Not available |
libncurses | Free software emulation of System V curses | ncurses.h, which is a symbolic link to curses.h |
libpam | Interface library for the Pluggable Authentication Module (PAM) | /usr/include/pam/* |
libpanel | Panel stack extension for curses | panel.h |
libxml2 | XML parsing library, Version 2 | /usr/include/libxml2/* |
libruby | Interpreted object-oriented scripting language | /usr/lib/ruby/1.6/powerpc-darwin7.0 /* |
libtcl | Tcl scripting language | tcl.h |
libtk | Graphical companion to Tcl | tk.h |
libwrap | TCP wrappers; monitors and filters incoming requests for TCP-based services | tcpd.h |
freetype2 | TrueType font rendering library, Version 2 | /usr/X11R6/include/freetype2/* |
Table 12-2. Libraries not included with Mac OS X
Fink package | Description | Home page |
---|
aalib | ASCII art library | http://aa-project.sourceforge.net/aalib |
db3 | Berkeley DB embedded database | http://www.sleepycat.com/ |
db4 | Berkeley DB embedded database | http://www.sleepycat.com/ |
dtdparser | Java DTD Parser | http://www.wutka.com/dtdparser.html |
expat | C library for parsing XML | http://expat.sf.net |
fnlib | Font rendering library for X11 | http://www.enlightenment.org/ |
freetype | TrueType font rendering library, Version 1 | http://www.freetype.org/ |
gc | General-purpose garbage collection library | http://www.hpl.hp.com/personal/Hans_ Boehm/gc/ |
gd | Graphics generation library | http://www.boutell.com/gd/ |
gdal | Translator for raster geospatial data formats | http://www.remotesensing.org/gdal/ |
gdbm | GNU dbm | http://www.gnu.org |
giflib | GIF image format handling library, LZW- enabled version | http://prtr-13.ucsc.edu/~badger/software/ libungif/ |
glib | Low-level library that supports GTK+ and GNOME | http://www.gtk.org/ |
gmp | GNU multiple precision arithmetic library | http://www.swox.com/gmp/ |
gnomelibs | GNOME libraries | http://www.gnome.org |
gnujaxp | Basic XML processing in Java | http://www.gnu.org/software/classpathx/jaxp |
gtk | GTK+, the GIMP widget toolkit used by GNOME | http://www.gtk.org/ |
hermes | Optimized pixel format conversion library | http://www.canlib.org/hermes/ |
imlib | General image handling library | http://www.enlightenment.org/pages/imlib2. html |
libdivxdecore | OpenDivX codec | http://www.projectmayo.com/projects/detail. php?projectId=4 |
libdnet | Networking library | http://libdnet.sourceforge.net/ |
libdockapp | Library that eases the creation of WindowMaker Dock applets | ftp://shadowmere.student.utwente.nl/pub/ WindowMaker/ |
libdv | Software decoder for DV format video | http://www.sourceforge.net/projects/libdv/ |
libfame | Fast assembly MPEG encoding library | http://fame.sourceforge.net/ |
libghttp | HTTP client library | http://www.gnome.org/ |
libjconv | Japanese code conversion library | http://www.kondara.org/libjconv/index.html. en |
libjpeg | JPEG image format handling library | http://www.ijg.org/ |
libmpeg | GIMP MPEG library | http://www.gimp.org |
libmusicbrainz | Client library for the MusicBrainz CD Index | http://www.musicbrainz.org |
libnasl | Nessus Attack Scripting Language | http://www.nessus.org/ |
libnessus | Libraries package for Nessus without SSL support | http://www.nessus.org/ |
libole2 | Library for the OLE2 compound file format | http://www.gnome.org/ |
libproplist | Routines for string list handling | http://www.windowmaker.org/ |
libshout | Library for streaming to icecast | http://developer.icecast.org/libshout/ |
libsigc++ | Callback system for widget libraries | http://developer.icecast.org/libshout/ |
libstroke | Translates mouse strokes to program commands | http://www.etla.net/libstroke/ |
libtiff | TIFF image format library | http://www.libtiff.org/ |
libungif | GIF image format handling library, LZW-free version | http://prtr-13.ucsc.edu/~badger/software/ libungif/index.shtml |
libunicode | Low-level Unicode processing library | http://www.sourceforge.net/projects/ libunicode/ |
libwww | General-purpose Web API written in C for Unix and Windows | http://www.w3c.org/Library/Distribution.html |
libxml | XML parsing library | http://www.gnome.org/ |
libxml++ | C++ interface to the libxml2 XML parsing library | http://sourceforge.net/projects/libxmlplusplus/ |
libxpg4 | Locale-enabling preload library | http://www.darwinfo.org/devlist. php3?number=9143 |
log4j | Library that helps the programmer output log statements to a variety of output targets | http://jakarta.apache.org/log4j |
lzo | Real-time data compression library | http://www.oberhumer.com/opensource/lzo |
neon | HTTP/WebDAV client library with a C API | http://www.webdav.org/neon/ |
netpbm | Graphics manipulation programs and libraries | http://netpbm.sourceforge.net |
pcre | Perl Compatible Regular Expressions library | http://www.pcre.org |
pdflib | A library for generating PDFs | http://www.pdflib.com/pdflib |
pil | The Python Imaging Library; adds image-processing capabilities to Python | http://www.pythonware/products/pil |
pilot-link | Palm libraries | http://www.pilot-link.org/ |
popt | Library for parsing command-line options | http://www.gnu.org/directory/popt.html |
pth | Portable library that provides scheduling | http://www.gnu.org/software/pth/pth.html |
readline | Terminal input library | http://cnswww.cns.cwru.edu/~chet/readline/ rltop.html |
slang | Embeddable extension language and console I/O library | http://space.mit.edu/~davis/slang/ |
stlport | ANSI C++ standard library implementation | http://www.stlport.org/ |
The list of available libraries is ever-growing, thanks to an influx of open source ports from FreeBSD and Linux. One of the best ways to keep on top of the latest ports is to install Fink or DarwinPorts (see Chapters 13 and 14, respectively), which lets you install precompiled versions of libraries and applications or install them from source.