Browse free open source C Libraries and projects below. Use the toggles on the left to filter open source C Libraries by OS, license, language, programming language, and project status.

  • MongoDB Atlas runs apps anywhere Icon
    MongoDB Atlas runs apps anywhere

    Deploy in 115+ regions with the modern database for every enterprise.

    MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
    Start Free
  • $300 in Free Credit Towards Top Cloud Services Icon
    $300 in Free Credit Towards Top Cloud Services

    Build VMs, containers, AI, databases, storage—all in one place.

    Start your project in minutes. After credits run out, 20+ products include free monthly usage. Only pay when you're ready to scale.
    Get Started
  • 1
    PHP RdKafka

    PHP RdKafka

    Production-ready, stable Kafka client for PHP

    php-rdkafka is a PHP extension that provides a binding to librdkafka, the C library for Apache Kafka. It enables PHP applications to produce and consume messages efficiently from Kafka topics, supporting both low-level and high-level APIs. The extension is ideal for integrating Kafka into high-performance, real-time systems built with PHP.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 2
    POCO

    POCO

    Cross-platform C++ libraries for building network applications

    The POCO C++ Libraries are powerful cross-platform C++ libraries for building network- and internet-based applications that run on desktop, server, mobile, IoT, and embedded systems. Whether building automation systems, industrial automation, IoT platforms, air traffic management systems, enterprise IT application and infrastructure management, security and network analytics, automotive infotainment and telematics, financial or healthcare, C++ developers have been trusting the POCO C++ Libraries for 15+ years and deployed it in millions of devices. Create software for connected embedded devices running Linux, Windows Embedded or QNX. Create cross-platform backends in C++ for iOS and Android applications and combine it with a native or HTML5-based user interface. Create software for IoT devices that talk to cloud backends over HTTP REST APIs. See macchina.io for an IoT platform built with POCO.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 3
    Riley's Graphics library FrameWork

    Riley's Graphics library FrameWork

    A cross platform lightweight single-header simple-to-use library

    RGFW (Really Good Framework) is a lightweight, C-based windowing and input library designed to be a minimal alternative to frameworks like GLFW or SDL. It supports OpenGL context creation, input handling, and simple file dialogs while staying highly portable and dependency-free. RGFW is ideal for developers who want tight control over their environment or want to build cross-platform applications with a tiny footprint. It’s particularly suited to educational, experimental, or embedded graphics projects.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 4
    SPI FLASH Library for STM32

    SPI FLASH Library for STM32

    W25qxx, N25Qxx and other SPI FLASH driver for stm32 HAL

    W25qxx, N25Qxx, and other SPI FLASH drivers for stm32 HAL.
    Downloads: 4 This Week
    Last Update:
    See Project
  • Train ML Models With SQL You Already Know Icon
    Train ML Models With SQL You Already Know

    BigQuery automates data prep, analysis, and predictions with built-in AI assistance.

    Build and deploy ML models using familiar SQL. Automate data prep with built-in Gemini. Query 1 TB and store 10 GB free monthly.
    Try Free
  • 5
    SocketCAN userspace utilities and tools

    SocketCAN userspace utilities and tools

    Linux-CAN / SocketCAN user space applications

    SocketCAN userspace utilities and tools. This repository contains some userspace utilities for the Linux CAN subsystem (aka SocketCAN).
    Downloads: 4 This Week
    Last Update:
    See Project
  • 6
    TFT_eSPI

    TFT_eSPI

    Arduino and PlatformIO IDE compatible TFT library

    An Arduino IDE compatible graphics and fonts library for 32-bit processors. The library is targeted at 32-bit processors, it has been performance-optimized for STM32, ESP8266 and ESP32 types. The library can be loaded using the Arduino IDE's Library Manager. Direct Memory Access (DMA) can be used with the ESP32, RP2040, and STM32 processors to improve rendering performance. "Four wire" SPI and 8 bit parallel interfaces are supported. Due to the lack of GPIO pins, the 8-bit parallel interface is NOT supported on the ESP8266. 8 bit parallel interface TFTs (e.g. UNO format mcufriend shields) can use with the STM32 Nucleo 64/144 range or the UNO format ESP32. ILI9341 and ST7796 SPI-based displays are recommended as starting points for experimenting with this library. The library supports some TFT displays designed for the Raspberry Pi (RPi) that are based on a ILI9486 or ST7796 driver chip with a 480 x 320-pixel screen.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 7
    libuv

    libuv

    Cross-platform asynchronous I/O

    libuv is a high-performance, multi-platform C library focusing on asynchronous I/O, originally developed for Node.js. It provides a consistent event-loop and I/O abstraction layer across a range of systems, making non-blocking operations portable and efficient. Full-featured event loop backed by epoll, kqueue, IOCP, event ports. Asynchronous TCP and UDP sockets. Asynchronous DNS resolution. Asynchronous file and file system operations. File system events, ANSI escape code-controlled TTY. IPC with socket sharing, using Unix domain sockets or named pipes (Windows).
    Downloads: 4 This Week
    Last Update:
    See Project
  • 8
    libzip

    libzip

    A C library for reading, creating, and modifying zip archives.

    libzip is a C library for reading, creating, and modifying zip archives. Files can be added from data buffers, files, or compressed data copied directly from other zip archives. Changes made without closing the archive can be reverted. The API is documented by man pages. libzip is fully documented via man pages. HTML versions of the man pages are on libzip.org and in the man directory. You can start with libzip(3), which lists all others. Example source code is in the examples and src subdirectories.
    Downloads: 4 This Week
    Last Update:
    See Project
  • 9
    miniaudio

    miniaudio

    Audio playback and capture library written in C,

    miniaudio is written in C with no dependencies except the standard library and should compile cleanly on all major compilers without the need to install any additional development packages. All major desktop and mobile platforms are supported. miniaudio gives you complete flexibility. With the low-level API, just initialize a connection to the device and send or receive raw audio data. The modular design of miniaudio allows you to use the low-level API without compromising your ability to make use of other features like the node graph and resource manager. miniaudio's node graph system gives you an easy way to set up advanced mixing and effect graphs. Each node sends it's output to another node, and so on and so forth to produce all kinds of effects. You can even implement your own custom nodes and plug them in however you like. Plug multiple nodes into the same input node for mixing and use the splitter node for complex routing.
    Downloads: 4 This Week
    Last Update:
    See Project
  • Gemini 3 and 200+ AI Models on One Platform Icon
    Gemini 3 and 200+ AI Models on One Platform

    Access Google's best plus Claude, Llama, and Gemma. Fine-tune and deploy from one console.

    Build generative AI apps with Vertex AI. Switch between models without switching platforms.
    Start Free
  • 10
    GtkDatabox

    GtkDatabox

    A GTK+-3 widget to display data

    GtkDatabox is a widget for live display of large amounts of fluctuating numerical data. Data presentation (e.g. on linear or logarithmic scales, as dots or lines, with markers/labels) as well as user interaction (e.g. measuring distances) is easy.
    Leader badge
    Downloads: 36 This Week
    Last Update:
    See Project
  • 11
    BlockHook

    BlockHook

    Hook Objective-C blocks. A powerful AOP tool

    BlockHook is an Objective-C library that enables hooking into the execution of blocks (closures). It allows developers to intercept, modify, and monitor block invocations for debugging, analytics, or altering app behavior.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 12
    Lexbor

    Lexbor

    Lexbor is development of an open source HTML Renderer library

    Lexbor is the development of a web browser engine available as a software library; it ships with a free license and has no extra dependencies. For us, speed is an absolute must-have. In our development process, we focus on fastest parsing techniques for HTML, CSS, and fonts, fastest data processing methods, and fastest ways to serve content to end users. Whether you are building a backend that handles millions of HTML documents or a UI-heavy user app, your software’s response rate always matters to users and developers alike. Lexbor’s code is optimized for ease of access in end-user applications and across programming languages. You can effortlessly wrap all the capabilities of the library in, say, Python to power your end-user or backend applications in a new environment. In other words, lexbor offers a feature-rich core that developers can build upon as they see fit.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 13
    Luvit Lua

    Luvit Lua

    Bare libuv bindings for lua

    Libuv bindings for Luajit and Lua. This library makes libuv available to Lua scripts. It was made for the luvit project but should be usable for nearly any Lua project. The library can be used by multiple threads at once. Each thread is assumed to load the library from a different lua_State. Luv will create a unique uv_loop_t for each state. You can't share uv handles between states/loops.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 14
    librdkafka

    librdkafka

    The Apache Kafka C/C++ library

    librdkafka is a C library implementation of the Apache Kafka protocol, providing Producer, Consumer and Admin clients. It was designed with message delivery reliability and high performance in mind, current figures exceed 1 million msgs/second for the producer and 3 million msgs/second for the consumer. librdkafka is licensed under the 2-clause BSD license. KAFKA is a registered trademark of The Apache Software Foundation and has been licensed for use by librdkafka. librdkafka has no affiliation with and is not endorsed by The Apache Software Foundation. SASL (GSSAPI/Kerberos/SSPI, PLAIN, SCRAM, OAUTHBEARER) support. Guaranteed API stability for C & C++ APIs (ABI safety guaranteed for C). Runs on Linux, MacOS X, Windows, Solaris, FreeBSD, AIX, and more. Commercial support is available from Confluent Inc.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 15
    libusbmuxd

    libusbmuxd

    A client library to multiplex connections from and to iOS devices

    A client library for applications to handle usbmux protocol connections with iOS devices. This project is a client library to multiplex connections from and to iOS devices alongside command-line utilities. It is primarily used by applications that use the libimobiledevice library to communicate with services running on iOS devices. The library does not establish a direct connection with a device but requires connecting to a socket provided by the usbmuxd daemon. The libimobiledevice project provides an open-source reimplementation of the usbmuxd daemon to use on Linux or as an alternative to communicate with iOS devices without the need to install iTunes. The architecture of the library and dependencies has been designed with an OOP approach in mind. Thus bindings for other programming languages are easier to create and allow an OOP based API. Linux enthusiasts were not amused about great but incompatible hardware like the iPhone 2G.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 16
    reproc

    reproc

    A cross-platform (C99/C++11) process library

    reproc (Redirected Process) is a cross-platform C/C++ library that simplifies starting, stopping and communicating with external programs. The main use case is executing command line applications directly from C or C++ code and retrieving their output. reproc consists out of two libraries: reproc and reproc++. reproc is a C99 library that contains the actual code for working with external programs. reproc++ depends on reproc and adapts its API to an idiomatic C++11 API. It also adds a few extras that simplify working with external programs from C++.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 17
    zlib-ng

    zlib-ng

    zlib replacement with optimizations for "next generation" systems

    zlib data compression library for the next-generation systems. Zlib-compatible API with support for dual-linking. Modernized native API based on zlib API for ease of porting. Modern C11 syntax and a clean code layout. Deflate medium and quick algorithms based on Intel’s zlib fork.
    Downloads: 3 This Week
    Last Update:
    See Project
  • 18
    4tH compiler

    4tH compiler

    A Forth compiler with a little difference

    4tH is a Forth compiler with a little difference. Instead of the standard Forth engine it features a conventional compiler. 4tH is a very small compiler that can create bytecode, C-embeddable bytecode, standalone executables, but also works fine as a scripting language. It supports about 95% of the ANS Forth CORE wordset and features conditional compilation, pipes, files, assertions, forward declarations, enumerations, structures, suspended execution, recursion, include files, etc. It comes with an RPN calculator, BASIC interpreter, line editor, preprocessor, compiler, decompiler, C-source generator, a virtual machine, and a multitasking environment.
    Leader badge
    Downloads: 74 This Week
    Last Update:
    See Project
  • 19

    GTK 3 runtime for windows 32 & 64

    The files required to run GTK+ applications on Windows

    This project is designed to create a nsis installer with the latest gtk3 for windows 32 and 64 bits based on MinGW64 binaries found in OpenSUSE build service.
    Leader badge
    Downloads: 67 This Week
    Last Update:
    See Project
  • 20
    This project consists of a linux kernel driver and some user-mode libraries. They allow a process to create a virtual usb host controller. Real or virtual usb devices can be "plugged" into this controller.
    Leader badge
    Downloads: 64 This Week
    Last Update:
    See Project
  • 21
    base64 RFC1113 Vanilla ANSI-C Code for a portable stand-alone file encode/decode utility. In 2001, I asked people to 'Help me break it!' Since then, 10+years later, the code remains unbroken and is in wide production use world-wide. It has been ported to all major architectures and been used as a template for ports to different computer and human languages. This is very mature and stable code. Although this comes from a project that was constrained by export controls and is used in secure systems, it is not security code per-se. I have therefore altered the 'Export Controls' category.
    Leader badge
    Downloads: 14 This Week
    Last Update:
    See Project
  • 22
    CGL

    CGL

    CGL (C Game Library) is a multipurpose library

    cgl is a compact, header-only C graphics library for 2D drawing operations using software rendering. Designed for simplicity and portability, cgl allows rendering of primitives such as lines, circles, triangles, and text to an in-memory framebuffer, which can then be displayed with any platform-dependent backend. It’s ideal for building custom engines, retro-style games, GUIs, or educational demos where GPU acceleration is not required. Its small footprint and lack of external dependencies make it easy to embed in any C project.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 23
    ESP8266Audio

    ESP8266Audio

    Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3

    Arduino library for parsing and decoding MOD, WAV, MP3, FLAC, MIDI, AAC, and RTTL files and playing them on an I2S DAC or even using a software-simulated delta-sigma DAC with dynamic 32x-128x oversampling. ESP8266 is fully supported and most mature, but ESP32 is also mostly there with built-in DAC as well as external ones. For real-time, autonomous speech synthesis, check out ESP8266SAM, a library that uses this one and a port of an ancient format-based synthesis program to allow your ESP8266 to talk with low memory and no network required. All this code is released under the GPL, and all of it is to be used at your own risk. If you find any bugs, please let me know via the GitHub issue tracker or drop me an email. The MOD and MP3 routines were taken from StellaPlayer and libMAD respectively. The software I2S delta-sigma 32x oversampling DAC was my own creation and sounds quite good if I do say so myself.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 24
    Efawin

    Efawin

    Interact with AWS Elastic Fabric Adapter on Windows

    Efawin library helps applications on Windows to interact with Elastic Fabric Adapter hardware on AWS EC2. It provides the necessary functionality through an interface that is very close to infiniband verbs interface. At this time, this library is scoped to support the libfabric efa provider that is part of the Open Fabrics Interfaces (OFI). See the OFI website for more information on libfabric. Any other use of the library is not tested or supported. This library provides the necessary functionality to create and manipulate the queues associated with AWS Elastic Fabric Adapter. Majority of the library's functionality comes from rdmacore's efa provider. To allow compilation of the library on Windows, some helper/compat files have been copied from the OFI's libfabric. The Efa driver interaction files have been copied from a AWS fork of libfabric. In addition to these, the Infiniband header files from OpenIB are used to provide an interface to the library.
    Downloads: 2 This Week
    Last Update:
    See Project
  • 25
    Intel(R) RDT Software Package

    Intel(R) RDT Software Package

    User space software for Intel(R) Resource Director Technology

    Intel CMT CAT is a user-space software package providing support for Intel's Resource Director Technology (RDT). It offers tools and libraries to monitor and control cache allocation and memory bandwidth.​
    Downloads: 2 This Week
    Last Update:
    See Project
MongoDB Logo MongoDB