Free C / C++ Programming Libraries

International Components for Unicode is a portable set of IBM Unicode globalization libraries for C/C++ and Java. ICU includes support for locale sensitive string comparison; date, time, number, currency, and message formatting; character set conversion; and additional features. It is avaliable under the X license, which is apparently compatible with the GPL license, although not copyleft. See the website for more details.

ImageLib: An Image Processing C++ Class Library
ImageLib is a C++ class library providing image processing and related facilities. The main set of classes provides a variety of image and vector types, with additional modules supporting scalar and vector quantisation, wavelet transforms, DCT transforms, and simple histogram operations.

Supports plotting and reading in the RGB (red, green, blue), HSV and CMYK colour spaces, basic shapes, scaling, bilinear interpolation, full TrueType antialiased and rotated text support, bezier curves, opening existing PNG images and more. Runs under Linux, Unix, Mac OS X and Windows. Requires libpng and optionally FreeType2 for the text support.

CImg Library - C++ Template Image Processing Library
The CImg Library is a C++ toolkit providing simple classes and functions to load, save, process and display images in your own C++ code. It is highly portable and fully works on Unix/X11, Windows and MacOS X operating systems.

The Boost web site provides free peer-reviewed portable C++ source libraries. The emphasis is on libraries which work well with the C++ Standard Library. The libraries are intended to be widely useful, and are in regular use by thousands of programmers across a broad spectrum of applications.

EzBasic library
EzBasic is an application development framework to develop projects in C++. The framework can be used to make programs using functions similar to Visual Basic*. The framework classes range from GUI, File Handling, Threads, String, Active-X just to name some of the important classes. And the best part is that it is free to use in your non commercial projects.

AxPipe - C++ Binary Stream Class Library
AxPipe - A binary stream abstraction C++ class framework for efficient implementation of both push and pull-model filters and all kinds of sources and sinks. Implementation-transparent optional multi-threading. Efficient reference-counted buffer handling.

GQL - Generic SQL Library
This is the homepage af the GQL Project - just another attempt to create a generic SQL interface for Linux/UNIX platforms. The CLI (call level interface) library GQL, provides an abstraction of a SQL database, which means it is a general API for all (or most) possible SQL databases. It achieves this by using individual drivers for different databases. GQL is implemented in C++, so its native interface is C++ also.

Database Template Library
"The goal of this library is to make ODBC recordsets look just like an STL container. What is more, we do this portably so the abstraction can run on multiple platforms and C++ compilers. As a user, you can move through our containers using standard STL iterators; and if you insert(), erase() or replace() records in our containers changes can be automatically migrated to the database for you."

The freeodbc++ project
Libodbc++ is a c++ class library for accessing SQL databases. It is designed with standards in mind, so it provides a subset of the well-known JDBC 2.0(tm) and runs on top of ODBC. It is distributed under the LGPL. The library has shown to compile and work on Linux, FreeBSD and win32 platforms. Any environment with a reasonable compiler, standard c++ library and ODBC Driver Manager should do.

FreeType 2 (free font library)
FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable and portable while capable of producing high-quality output (glyph images). It can be used in graphics libraries, display servers, font conversion tools, text image generation tools, and many other products as well.

GNU lightning
GNU lightning is a library that generates assembly language code at run-time; it is very fast, making it ideal for Just-In-Time compilers, and it abstracts over the target CPU.

GradC++Toolbox is a joined package composed by several platform-independet components for command line parsing, debug and info messages starting and stopping of threads and so on.

Matrix Template Library (MTL)
The Matrix Template Library (MTL) is a high-performance generic component library that provides comprehensive linear algebra functionality for a wide variety of matrix formats.

A garbage collector for C and C++
The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new. It allows you to allocate memory basically as you normally would, without explicitly deallocating memory that is no longer useful. The collector automatically recycles memory when it determines that it can no longer be otherwise accessed. Alternatively, the garbage collector may be used as a leak detector for C or C++ programs, though that is not its primary goal.

Graph Template Library GTL
GTL, the Graph Template Library GTL can be seen as an extension of the Standard Template Library STL to graphs and fundamental graph algorithms.

Matrix TCL Pro
Matrix TCL Pro is a matrix template class library for performing matrix algebra calculations in C++ programs in easy and efficient manner for engineering / scientific works.

The Standard Function Library
The SFL (Standard Function Library) from iMatix is a portable function library for C/C++ programs. The SFL is the result of many years development, and is provided as Open Source software for the benefit of the Internet community.

ClanLib is a medium level development kit. At its lowest level, it provides a platform independent (as much as that is possible in C++) way of dealing with display, sound, input, networking, files, threadding and such.

GNet is a simple network library. It is written in C, object-oriented, and built upon GLib. It is intended to be small, fast, easy-to-use, and easy to port.

MyLibC is a glibc clone for windows.

ebase - embedded C++ database library
"A portable, lightweight, and flexible C++ library that provides reliable persistent storage. It is well suited for embedded systems, personal digital appliances and small-scale database need on web."

IO95, a Win95 LFN API wrapper library
This library contains functions to access the LFN API Win95 offers in the DOSbox, it can help to make a program LFN-aware quicklier.

The goal of CGAL is to make the most important of the solutions and methods developed in computational geometry available to users in industry and academia in a C++ library.

"DataReel is a collection of C/C++ libraries used to rapidly develop and deploy multi-threaded database and communications applications."

A library form of HTML Tidy (C) has been created to make it easier to incorporate Tidy into other software.

omniORB is a robust high performance CORBA ORB for C++ and Python.

uClibc is a C library for developing embedded Linux systems.

Parsing comand line arguments and configuration files.

ncurses 5.2
The Ncurses (new curses) library is a free software emulation of curses in System V Release 4.0, and more. It uses Terminfo format, supports pads and color and multiple highlights and forms characters and function-key mapping, and has all the other SYSV-c

GSL - The GNU Scientific Library
The GNU Scientific Library (GSL) is a modern numerical library for C and C++ programmers. The routines have been written from scratch by the GSL team in ANSI C.

The core of the libsmi distribution is a library that allows management applications to access SMI MIB module definitions.

SparseLib++ is a C++ class library for efficient sparse matrix computations across various computational platforms.

Introduction to the Standard Template Library
Programmer's guide and download link for the STL.

Views - a C++ Standard Template Library extension
The C++ Standard Template Library provides templates that define generic container and iterator classes. The software extends the STL by adding template classes that define views.

Ensemble is the next generation of the Horus group communication toolkit. Developed at Cornell University, as well as at the Hebrew University of Jerusalem.

IML++ (Iterative Methods Library) v. 1.2a
IML++ is a C++ templated library of modern iterative methods for solving both symmetric and nonsymmetric linear systems of equations.