Free C/C++ Libraries
- Boost - Provides a repository
for free peer-reviewed portable C++ source libraries. The emphasis is
on libraries which work well with the C++ standard library.
- STLport (STL Library) :
This version of STL (Standard Template Library for C++) is available
free of charge from their website. It is apparently also shipped with
the current versions of the Borland C++ compilers.
- ACDK - Artefaktur Component
Development Kit - Platform independent C++ component framework similar
to Java or .NET (reflection, threading, Unicode, garbage collection,
io, net, util, xml, etc.) with integration of Java, Perl, Python, Tcl,
Lisp, COM and CORBA. [Open source Free c ++ Library Classes]
- Libcwd - A well-documented,
thread-safe library to support C++ developers with debugging their applications.
It includes support for ostream-based debug output to custom debug channels,
memory allocation debugging and run-time support like printing source
file locations and demangled names of template parameters. [ Free c
++ Library Classes]
- Common C++ - A framework
offering portable support for threading, sockets, file access, deamons,
persistance, and system for clarity, services. [Open Source Free c ++
- Database Template
Library - Provides ODBC recordsets just like STL containers, including
writing the contents back to the database.
- Common Text Transformation
Library - Library of C++ classes and functions to parse and modify
STL strings. CTTL substring classes may be compared, inserted, replaced,
and parsed with EBNF grammars. Compiled program implements recursive
descent LL(INF) parser. [Open source Free c ++ Library Classes]
- SGI Standard Template Library
If your compiler does not have a recent Standard Template Library implementation,
you might want to consider this version available free from SGI.
- A C++ wrapper to give an XBase fashion to the Berkeley DB library.
3D C++ Programming Library - AV3D for C++ is a multi-platform, high-performance
programming library. Major features: 3D Graphics, Sound support (SB,
and S3M), Controller interface (keyboard, mouse, and joystick), XMS.
- Babylon Library
- A collection of simple routines and classes that could be used as
building blocks of larger projects. Many of the methods are portable
and adjusted for use in embedded systems. [Open source Free c ++ Library
- Open EzBasic - A C++
based library, that can be used to make programs using functions as
in VB. The library has 25 classes ranging from GUI, Threads, String,
Active-X. Simple way to convert VB code to C++. [Open source Free c
++ Library Classes]
- dlib C++ library
- A collection of various classes. Sockets, threading, GUI, and directory
browsing API. Also many container classes and other miscellaneous items
such as a big integer. [Open source Free c ++ Library Classes]
- BitMagic - A C++ classes
library implementing bitvectors with several types of on-the-fly, adaptive
compression. Can be used in databases and search systems. [Open source
Free c ++ Library Classes]
- freeodbc++ - A C++
library for accessing SQL databases. Designed with standards in mind,
so it provides a subset of the well-known JDBC 2.0 and runs on top of
ODBC. [Open Source, LGPL]
- Free C++ library of cryptographic schemes: includes ciphers, message
authentication codes, one-way hash functions, public-key cryptosystems,
and key agreement schemes.
- EasyWin32 - Makes
easier Windows Programming when using Windows API. [Open source Free
c ++ Library Classes].
- Simple XML Persistence Library
- A lightweight C++ library for object serialization in XML.
- SOL++2000 - a free
C++ class library for Microsoft Windows. All source files of the library
and a lot of sample programs are available.
- Standard J2K Library - A
completely portable C++ library, to provide a standard set of classes
similar to Java Common API. [Open Source, LGPL]
- GNU Nana
- Library of many tested, proven methods to raise reliability of C &
C++ code. Includes: extended logging, assertion checking, Design by
Contract: DbC. Supports realtime measurements, making performance statistics
for code fragments, and tracing program execution without modifying
- libunicows :
libunicows allows you to write programs that use Unicode on Windows
9x/ME with a compiler other than Microsoft Visual C++ (the Microsoft
unicows library requires Visual C++). This library supports (at the
time I write this) MinGW, Visual C++ 6, Borland C++, and Watcom (and
- OSLib :
OSLib is a C library for programmers writing system software (whether
it be embedded software or even entire operating system kernels). It
comprises 4 libraries (the extender library, the standard C library,
the math library and the kernel library).
- MIT Exokernel Operating
The MIT Exokernel Operating System attempts to provide a level of abstraction
of hardware so that you can concentrate on the other aspects of implementing
an operating system. It may be useful to those of you planning to write
an operating system.
- The OSKit Project (Flux)
The OSKit Project is a C framework of 34 components providing a wide
variety of facilities that is useful for people planning to write operating
system kernels, servers, boot loaders, embedded applications and the
- regex :
regex is a regular expression parser that is released into the public
domain (or so the site says). It is useful if you want to write a program
using regular expressions but don't want to use the GPL ones that come
from the Free Software Foundation. (The package is somewhere in the
middle of the page linked to; just scroll down to find it.)
- txObject ATK - A collection
of platform-independent C++ class libraries that provides a five-layer
framework containing an Object Library, IO and Timers, Threads, Inter-Process
Communication, and Distributed Object Communication.
- libsigc++ Callback Framework
for C++ :
libsigc++ has C++ classes that provide you a typesafe callback system.
You can define signals and assign callback functions to those signals.
- The Standard Function Library
The Standard Function Library, or SFL, contains routines for compression,
encryption, encoding, data type conversion, data output formatting,
process control, dates, times, calendars, symbol tables, linked lists,
configuration files, error message files, string manipulation.
- The Virtual X Class
Library (VXCL) - A collection of powerful C++ classes. [Open source,
- C++ Standard Template Library Extension :
Views extends STL to include domain views, which allows you to simplify
your code when you work with containers.
- VXL (the Vision-something-Libraries)
- A collection of C++ libraries designed for computer vision research.
Includes imaging, geometry, numerics, streaming I/O, basic templates,
posix. VXL is written in ANSI/ISO C++ and is designed to be portable
over many platforms.
GNU Lightning is a library of routines that allows programs to generate
assembly language code at runtime. It abstracts the target CPU, exposing
your program to a standardized RISC instruction set.
- GetPot :
GetPot, an anagram of the ubiquitous getopt, allows programs to parse
command lines and simple input files by simply including the header
file for the library (the entire library is apparently in the header
- ZThreads - An advanced
object-oriented, cross-platform C++ threading and synchronization library.
- The CImg Library - The
C++ Templated Image Processing Library, provides simple classes and
functions to process and display images. For Unix/X11 and Windows. [Open
- MyLibC :
MyLibC is a clone of glibc for Windows. The author wrote this to reduce
the size of executables that resulted when glib was used on Windows.
Sources are provided.
Win95 LFN API Wrapper Library :
This library has functions which you can call from your MSDOS programs
to access the long filenames (LFN) API found in Windows 95 and above.
- U2NT Library:
Unix/NT Cross-Platform Library :
This is a library that eases the work needed to port Unix programs to
NT. There aren't many details on the website about the libraries' capabilities,
but you can simply download it from their site and check it out yourself.
- ClibPDF PDF Library :
ClibPDF is a C library that allows you to create PDF files from your
application or even CGI scripts.
- A C++ class for Win32 platforms to load, save, display, transform
BMP, JPEG, GIF, PNG, TIFF, MNG, and ICO images.
Ensemble is a toolkit for building reliable distributed applications.
Included in this toolkit is a library of protocols which you can use
to build your distributed applications. The library primarily uses UDP/IP
- GLT - C++ library for programming
interactive 3D graphics with OpenGL. Aims to augment the OpenGL API
with convenient mechanisms for manipulating the OpenGL state machine.
- Dislin :
This is a plotting library for displaying data as curves, bar graphs,
pie charts, 3D-colour plots, surfaces, contours and maps.
- OpenSteer - A C++
library to help construct steering behaviors for autonomous characters
in games and animation
- LibSMI :
This C library "allows network management applications to access
SMI MIB module information through a well defined API that hides the
nasty details of locating and parsing SMIv1/v2 MIB modules."
- TIFF Tools - A set
of C++ binds to libtiff and some utilities for working with multi-page
TIFF files created from scanning documents. [Open source, GPL]
- The Visualization ToolKit
(VTK) - A C++ libraries for 3D computer graphics, image processing,
and visualization. Also Tcl, Python and Java implementations based on
the class library.
- GNET Network Library :
This is a simple network library built on top of glib. It works on Linux,
BSD, Mac OS X, Solaris, HP and Windows.
- Whisper C++ Application
Whisper is a general purpose C++ application framework, which takes
advantage of templates, multiple inheritance, STL and exceptions. It
is portable to both Macintosh and Win32. It contains numerous debugging
- GNU Common
GNU Common C++ is a C++ framework for developing portable threaded applications.
It is released under the GNU GPL license.
- OPP C++ Class Library
A C++ class library that has a number of features, including classes
for retrieving files via HTTP, sending and receiving email, database
classes, thread support, string class, html parser, etc. It supports
- A C++ API for MySQL. Tries to make working with queries as easy as
working with other STL containers.
Garbage Collector :
A garbage collector for C/C++ that can also function as a memory leak
detector. You can simply replace your calls to malloc() with GC_malloc().
Win32, Win32s, OS/2, MacOS, AmigaDOS and Unix systems are supported.
- s-mail project
- DObject Library C++ Database Connectivity - A C++ database interface
similar to the JDBC technology. Currently available drivers support:
MySQL database, mdb files via the ADO component (win32 platform only).
[Open source, GPL]