Skip to content

Free C Projects

Table of Contents

Documentation

Portals

Generic Libraries

  • GNU Libc
    (Portable POSIX and ISO standard compliant C library. License: LGPL)
    (cvs)
    (ml)
    (manual)
    (FAQ)
    (deb)
  • OSSP Library Projecst
    (Large collection of libraries providing: portable threading, network
    programming abstraction, process management, filesystem abstraction,
    data management, exception handling, and more. License: GPL/LGPL/BSD-style)
    (cvs)
  • Diet Libc (Lightweight Libc. License: GPL)
  • uClibc (Lightweight Libc. Suitable for MMU-less CPU's.)
    (cvs)
    (ml)
    (deb)
  • Libowfat (GPL licensed reimplemention
    of Libdjb, which tries to increase security and portability for several basic
    libc functions. License: GPL)
    (deb)
  • c2lib (Perl and STL influenced
    library of general programming tools. License: LGPL)
  • libmba (Collection of
    C functions that can be useful to any project. Included features: hash map,
    linked list, stack ADTs, a DOM-like interface that can load and store XML
    files for simple XML processing, and more. License: BSD-style)
    (source)

Script Integration Libraries

  • ...

Text Manipulation Libraries

- String Libraries

  • Vstr (Dynamic string library.
    License: GPL)
  • GNU Readline
    (Library for use by applications that allow users to edit command lines as
    they are typed in. License: GPL)

- Configuration File Libraries

  • libConfuse
    (Configuration file parser library. License: LGPL)
    (cvs)
    (ml)
  • spconfig ("XML-like syntax
    with some additional preprocessor-style commands" configuration file parser
    library. License: BSD-style)

- Regular Expression Libraries

  • PCRE (Regular expression engine,
    with a native API and a POSIX API.
    License: PCRE License,
    which has a GPL and LGPL supersede clause.)
  • Rx-XML and Rx-Posix
    (Regular expression engine for XML parsers and POSIX regexp function
    implementations. License: GPL)

- XML Libraries

  • LibXML
    (DOM and
    SAX parser library with XML DTD validation.
    (ml)
    License: BSD-style)
  • libXSLT
    (XSLT and
    EXSLT
    parser library for the transformation for XML documents. License: BSD-style)
    (ml)
  • EXSLT (Community initiative to provide
    extensions to XSLT. License: ?)
    (ml)
  • Parsifal
    (SAX2 compliant, non-validating XML parser library. License: none,
    it is public domain)
    (source)
  • ezXML
    (Small XML parser library. License: BSD-style)
  • DOMC
    (DOM API library for
    manipulating XML and HTML documents as a tree of nodes in
    memory. License: BSD-style)
    (source)
  • RLIB
    (Report generation library, based on
    LibXML and Glib. License: GPL)

- Binary XML Libraries

  • CWXML
    (Library for parsing and generating XML and
    BXML,
    aka Binary XML. License: LGPL)
  • libwxml
    (Library for parsing and generating
    WBXML, aka "WAP Binary XML".
    License: LGPL)
    (cvs)

- RDF Libraries

  • Redland RDF Application Framework
    (Framework for creating RDF applications. License: LGPL or Apache License v2.0)
    (cvs)
    (ml)
  • Redland Rasqal
    (Library which handles RDF query syntaxes, query construction and
    query execution returning result bindings. License: LGPL and MPL)
    (cvs)
    (ml)
  • Redland Raptor
    (Library which parses RDF syntaxes such as RDF/XML and N-Triples into
    RDF triples. License: LGPL and MPL)
    (cvs)
    (ml)

- Text Filtering Libraries

  • libsieve (Library
    implementation of the Sieve
    based mail filtering language standard. License: BSD-style)
    (cvs)
    (ml)
  • libextractor (Library
    for extracting keywords from files. License: GPL)
    (source)

Threading, Signalling and Parallel-Programming Libraries

  • NPTL
    (Native POSIX Thread Library. Project to improve the POSIX
    threading for the GNU C library and the Linux kernel. License: LGPL)
    (announcement v0.1)
  • Protothreads
    (Stackless threading library for memory constrained systems, such as
    embedded systems. License: BSD-style)
  • NGPT (Next Generation POSIX Threads.
    Variant of the GNU Pthread threading library with several POSIX compliant
    enchangements.
    License: LGPL)
    (cvs)
    (ml)
  • State-Threads (Threading library
    with an 'event-driven state machine architecture'. License: GPL or MPL)
    (ml)

Numerical, Algorithmic and Crypto Libraries

  • GSL (GNU Scientific Library. A numerical library with a C and C++ API, which currently provides more than a 1000 mathematical functions. License: GPL) (cvs) (ml)
  • OOL ("Open Optimization Library". GSL
    based library providing various optimization functions. License: GPL) (cvs)
  • Tina (Algorithm development libraries. License: LGPL)
  • GMP (Library for arbitrary precision arithmetic for: signed integers, rational numbers, and
    floating point numbers. License: LGPL) (ml)
  • LibTomMath (Library for arbitrary precision integer arithmetic. License: BSD-style)
  • GnuTLS(TLS implementation, used for transport layer security, using encryption and authentication based on certificates. License: LGPL) (cvs) (ml)
  • MatrixSSL (TLS library. License: GPL)
  • yaSSL (TLS library. License: GPL)
  • OpenSSL (TLS library. License: BSD-style with anti-license-mixture clause) (cvs) (ml)
  • Nettle (Low-level cryptographic library. License: GPL)
  • LibTomCrypt (Portable crypto library. License: BSD-style)
  • libike (Portable library for managing IKE negotiations. License: BSD-style with source requirement)
  • borZoi(Elliptic curve cryptography library. License: GPL)
  • GAUL (Genetic Algorithm Utility Library. Library to help build programs which use genetic algorithms. License: GPL) (cvs) (ml)
  • FFTW (Library for computing the Discrete Fourier Transform in one or more dimensions, of both real and complex data, and of arbitrary input size. Inactive project. License: GPL)
  • librsync (Library which implements the rsync algorithm, which can transfer the differences between two files without needing both
    files on the same system. License: LGPL) (cvs)
  • AVLMAP (Library for managing an AVL balanced binary tree and searching through it. License: LGPL)
  • Mhash (Library whith a uniform interface to several different hash functions. License: LGPL) (cvs) (ml) (ml)
  • libghthash ('Generic hash table' library which is meant to be easy to extend, portable, clear in its code and easy to use. License: LGPL)
  • Harminv (Library for solve numerical problems using harmonic inversion. License: GPL)

Network and Web Programming Libraries

  • PJSIP
    (SIP networking library)
    (ml)
  • libdnet
    (Library provides a simplified, portable interface to several low-level
    networking routines, including: network address manipulation,
    ARP/ARP-cache/route table lookup. License: BSD-style)
    (cvs)
    (ml)
  • xmlrpc
    (XML-RPC library implementation.
    License: BSD-style)
    (cvs)
    (ml)
  • libcurl
    (Library which helps the writing of Un*x daemons. License: BSD-style)
    (cvs)
    (ml)
  • libdaemon
    (Library which helps the writing of Un*x daemons. License: GPL)
  • uri (URI parser library.
    License: GPL)
    (cvs)
  • GNU SASL
    (SASL standard
    implementation which can provide a generic framework for the following
    authentication mechanisms: CRAM-MD5, DIGEST-MD5, GSSAPI and NTLM.
    License: LGPL)
    (cvs)
  • Cyrus SASL
    (SASL implementation)
    (cvs)
    (ml)
  • Shushi (implementation of
    the RFC 1510,
    the Kerberos network authentication system. Shushi can be used to
    authenticate users in distributed systems. License: GPL)
    (cvs)
  • GSS Generic Security Service.
    GSS-API v2 implementation
    which makes use of the Sushi library.) License: GPL)
    (cvs)
  • libESMTP (Library
    which implements the SMTP protocol. libESMTP is meant to be a generic API
    for software which needs to submit email messages trough SMTP. License: LGPL)
    (ml)
  • libspopc (POP3 client
    library. License: LGPL)
  • HTTP Fetcher
    (HTTP client library. License: LGPL)
    (cvs)
    (ml)
  • libwebserver (Library
    which implements an HTTP server. License: GPL)
    (cvs)
  • libsoup
    (GNOME library which implements the HTTP
    protocol. License: LGPL)
    (cvs)
  • LibCGI (Library to create
    CGI based web applications. support for string manipulation, linked lists,
    cookies, sessions, GET and POST methods, and more. License: LGPL)
    (cvs)
  • oSIP (Library
    which implements the
    Session
    Initiation Protocol
    . License: LGPL)
  • libpdpt
    (Client library for PDTP.
    PDPT is a peer-to-peer system for distributing file system directory
    hierarchies. License: BSD-style)
    (svn)
    (ml)
  • libusb (Portable
    user-space library for accessing USB devices. License: LGPL)
    (cvs)
    (ml)
    (EML "EarthMate Userland Library"
    libusb based library for access to USB devices. License: GPL)
    (svn)
  • FSPLIB
    (Library implementation of the UDP based "File Service Protocol". License: BSD-style)
    (cvs)
    (cvs)
  • libpcap (Library for
    analyzing network traffic. License: BSD-style)
    (ml)
  • Neon (HTTP and
    WebDAV client library. License: LGPL)
    (cvs)
    (ml)
  • uIP (Tiny TCP/IP stack implementation
    designed for use on 8-bit microcontrollers.
    License: BSD-style)
  • pthrlib (Library for
    writing small and efficient network server software. License: LGPL)
  • RoadRunner (Library which
    implements the BEEP protocol.
    BEEP is designed to simplify and improve the design of connection oriented
    network application protocols. See also this BEEP implementation:
    beepcore.org. License: BSD-style)
  • linc (Library to
    ease the development of network servers & clients written in C.
    There is currently support for IPv4, IPv6, Un*xDomain sockets, IrDA and
    OpenSSL. License: GPL)
  • libping (Library
    to make ICMP_ECHO requests directly from a script or program. Libping can
    also check TCP/IP services like: SMTP, HTTP and POP3. The functions return
    either a boolean 'is alive' or the round-trip time in milliseconds. License: GPL)
  • EPS (Email Processing System.
    Initiative to create a well documented API for writing efficient email
    processing tools. License: GPL)
  • libVNCServer (Library for
    writing VNC server applications. License: GPL)
    (cvs)

Multimedia Libraries

- Audio Libraries

  • liboggz
    (Library for reading Ogg Vorbis audio streams/files. License: BSD-style)
  • libfishsound
    (Library for reading Vorbis Speex audio streams/files. License: BSD-style)
  • libsndfile (Library for
    reading and writing sampled sound files. License: LGPL)
  • libsamplerate (Library for
    rate converter of audio samples. License: LGPL)

- Image Manipulation Libraries

  • Gegl ("Generic Graphical Library".
    Image processing library, mainly developed for
    The GIMP. License: LGPL)
    (cvs)
  • Little CMS
    (Image color management library. License: BSD-style)
    (ml)
  • VIPS (VASARI Image
    Processing Software. Image processing library with about 200 image
    processing operations. NIP is the GTK+ based GUI for VIPS. License: GPL)
    (ml)
  • DevIL ("Developer's Image
    Library". Portable image manipulation library. License: LGPL)
    (cvs)
    (ml)
  • GD (Library for the
    dynamic creation of PNG/JPEG images. License: BSD-style)
  • Poppler
    (PDF rendering library based on
    Xpdf
    (cvs)
    (ml)
  • spurtg (Real-time graphics
    renderer based on input from the soundcard. License: GPL)

- Video Libraries

  • ...

- 3D & Gaming Libraries

  • Mesa3D (Portable 3D
    graphics library, with an API similar to Op*nGL. License:
    see this page)
    (cvs)
    (ml)
  • FreeGLUT
    (Free implementation of the 'Op*nGL Utility Toolkit' library.
    FreeGLUT provides a simple windowing API based on Op*nGL. License: BSD-style)
    (cvs)
    (ml)
  • SDL ("Simple DirectMedia layer".
    Advanced and portable 2D/3D multimedia & game development library.
    License: LGPL)
    (cvs)
    (ml)
    (game projects)
  • Allegro
    (3D game and multimedia development library. License:
    Allegro Giftware)
    (cvs)
    (ml)
  • vlib
    (3D image processing library. License: GPL)
  • GTS
    ("GNU Triangulated Surface". Library for manipulating 3D surfaces meshed
    with interconnected triangles. License: LGPL)
    (cvs)
    (ml)

File Format Libraries

- Compression File Format Libraries

- Audio File Format Libraries

  • libsndfile (Library for
    reading and writing sampled sound files. License: GPL)

- Image File Format Libraries

  • libjpeg (Patent free
    JPEG image
    format library implementation for lossy image compression.
    License: BSD-style)
  • libtiff (Free
    TIFF image
    format library implementation for storing raster-image data.
    License: BSD-style)
    (libgeotiff
    extension of libtiff with a geospatial meta-tag data structure)
    (cvs)
    (ml)
  • libpng
    (PNG image format read/write library. License: BSD-style)
    (libmng (The MNG, aka
    Ming, animated PNG image format)
  • librsvg (Library for
    rendering SVG files to other, more conventional types, such as JPEG
    and PNG. License: LGPL)
    (cvs)
    (ml)
  • JBIG-KIT (Library
    implementation of the
    JBIG bi-level image
    compression standard, optimized for reading and writing of high-resolution,
    scanned documents. License: GPL)
  • DjVuLibre (Image encoding and
    decoding program, including several other tools, for using the lossy
    image format DjVu.)
    (patent comments)
  • libbsb (Library for
    reading/writing BSB raster image files. This package includes
    several tools, like: bsb2tif, tif2bsb, ppm2bsb, bsb2ppm. License: LGPL)
    (cvs)

- 3D & CAD File Format Libraries

  • Shapelib
    (Library for reading and writing ArcView Shapefiles. License: LGPL)

GUI Libraries

  • GTK+ (The GIMP Toolkit. A portable C based GUI toolkit. License: LGPL)
    (ml)
  • GtkGLExt (C and C++ library
    interface to use Op*nGL operations via GTK+ widgets. License: LGPL)
    (cvs)
    (ml)
  • GNOME ("GNU Object Model Environment".
    GUI application framework based on GTK+)
  • Xfce
    (GUI application framework based on GTK+)
    (cvs)
    (ml)
    (forum)
    (blog)
  • PIXEL (GUI toolkit
    build on Microwindows and Nano-X. PIXEL is aimed at embedded
    desktop systems and comes with a set of desktop applications.
    License: GPL)
    (ml)
  • MiniGUI (Lightweight GUI toolkit. License: LGPL)
    (source)
  • PicoGUI (Lightweight GUI toolkit. License: LGPL)
    (cvs)
    (ml)
  • MicroWindows (Lightweight GUI
    toolkit. License: MPL)
    (ml)
  • Lesstif (Sourcecode compatible
    library for creating GUI applications which use OSF/Mot*f. License: LGPL)
    (cvs)
    (ml)

Device Access Libraries

  • libcdio
    (Library for reading and controlling CD/DVD-ROM device access)
    (cvs)
  • libUSB
    (Library for accessing
    USB
    devices. License: LGPL)
    (cvs)
    (ml)
  • libDsk (Library for
    accessing discs and disc image files. License: LGPL)
  • libjsw (Library which
    provides a uniform joystick interface for developers and a uniform calibration
    interface for users. License: GPL)
  • libchipcard (Library for accessing
    chip cards via a chipcard reader. It supports most chipcard readers for which
    there is a CTAPI or PC/SC device driver. License: LGPL)
    (cvs)
    (ml)
  • SCTK (Smart Card ToolKit.
    Library and associated tools for accessing smart cards. Supported:
    ISO7816
    asynchronous smartcard interface specification, PIC-based cards, SPI/AVR programming
    mode, internal/external i2c. License: GPL)
  • libquantum (Quantum computer
    simulation library. License: GPL)

Testing and Debugging Libraries

  • CppUnit (Framework
    for automatic unit testing. License: GPL)

Database Engine/Interface Libraries

  • Yada
    (C based database independent abstraction layer)
  • LibDBI (Database
    independent abstraction layer for C. License: LGPL)
    (cvs)
    (ml)
  • Berkeley DB
    (ACID compliant, embedded, database engine. License: BSD-style with
    source requirement)
  • SQLite (ACID compliant,
    embeddable, mostly SQL compliant RDBMS. License: none, it is Public Domain.)
    (cvs)
  • SHSQL
    (Embedded SQL database library, which stores
    data in ASCII text files. License: GPL)
  • LibSDB (Portable database independent
    abstraction layer for C. License: LGPL)
  • Bond
    ("Building Object Network Databases". Library for creating
    database utilizing GUI applications described in XML files. License: GPL)

Science Libraries

  • libRASCH
    (Pluggable library which provides a common interface for viewing and
    processing of measurement data which is stored in different
    data formats.
    License: LGPL)
    (ml)
  • FANN
    ("Fast Artificial Neural Network Library". License: LGPL)
    (cvs)
  • Ellogon
    (Multi-lingual, general-purpose text research framework.
    Ellogon includes a KDE based visualization tool and API bindings
    for C++, Perl, Python and other programming languages. License: LGPL)
    (forum)

Financial Libraries

  • Gretl (Gnu Regression,
    Econometrics and Time-series Library. Library with functions
    relating to
    econometric
    estimation. Gretl includes a command-line client program and a GNOME
    client. License: GPL)
    (cvs)
    (ml)

GCC Compiler

Other Compilers

  • MinGW (GCC extensions and libraries
    to produce native M$ w32 programs. License:
    MingW licensing terms
    .)
    (cvs)
  • TCC (Tiny C Compiler.
    "The Smallest ANSI C compiler" which can also easily be used for
    interpreting C scripts. License: GPL)
    (ml)
  • DJGPP (GCC based C/C++
    compiler for x386's running M$ DOS. License: GPL and LGPL)
  • Cint (C/C++ Interpreter.
    Inactive project. License: BSD-style and GPL)
  • cdo (GNU Bash based C
    one-liner interpreter. License: GPL)
  • CIL ("C Intermediate
    Language". High-level language representation along with a set of tools that allow
    for easy analysis and source-to-source transformation of C programs.
    License: BSD-style)
  • SDCC ("Small Device C Compiler".
    C compiler that targets: "Intel 8051", "Maxim 80DS390" and the "Zilog Z80"
    based MCUs. License: GPL)

Developer Applications

  • ABIcheck (Utility for checking
    an application binary's use of library interfaces against the Application Binary
    Interface (ABI) defined for those libraries. License: LGPL)
    (cvs)
    (ml)

User Applications

Books