[go: up one dir, main page]

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
  • The Apple Device Management and Security Platform Icon
    The Apple Device Management and Security Platform

    For IT teams at organizations that run on Apple

    Achieve harmony across your Apple device fleet with Kandji's unmatched management and security capabilities.
    Learn More
  • 1
    libusb

    libusb

    A cross-platform library to access USB devices

    libusb is a library for USB device access from Linux, macOS, Windows, OpenBSD/NetBSD, Haiku and Solaris userspace. It is written in C (Haiku backend in C++) and licensed under the GNU Lesser General Public License version 2.1 or, at your option, any later version. libusb is a C library that provides generic access to USB devices. It is intended to be used by developers to facilitate the production of applications that communicate with USB hardware. Using a single cross-platform API, it provides access to USB devices on Linux, macOS, Windows, etc. No special privilege or elevation is required for the application to communicate with a device. All versions of the USB protocol, from 1.0 to 3.1 (latest), are supported. libusb is abstracted internally in such a way that it can hopefully be ported to other operating systems.
    Downloads: 29 This Week
    Last Update:
    See Project
  • 2
    GLEW

    GLEW

    The OpenGL Extension Wrangler Library

    GLEW is a cross-platform open-source C/C++ extension loading library that simplifies the process of using OpenGL extensions. It provides efficient run-time mechanisms to determine the availability of OpenGL extensions on the target platform, exposing core and extension functionality in a single header file. GLEW supports multiple operating systems, including Windows, Linux, macOS, FreeBSD, Irix, and Solaris, making it a versatile tool for graphics developers.
    Downloads: 26 This Week
    Last Update:
    See Project
  • 3
    Curl

    Curl

    Command line tool and library for transferring data with URLs

    Curl is a command line tool and library for transferring data specified with URL syntax. It supports HTTP, HTTPS, FTP, FTPS, GOPHER, TFTP, SCP, SFTP, SMB, TELNET, DICT, SSL certificates, cookies, user+password authentication, and so much more! Curl is used for many different things. It's used in command lines or scripts for transferring data. It's also used in just about every device you can think of: mobile phones and tablets, television sets, printers, routers, media players and other audio equipment. Curl is also the internet transfer backbone for thousands of software applications being used extensively throughout the world today. Curl is feature-rich, thread-safe, well supported and fast. It is also highly portable and works on numerous platforms, including Solaris, NetBSD, FreeBSD, OpenBSD, Linux, Mac OS X, Windows, Darwin, UnixWare, HURD, BeOS, Ultrix, QNX, DOS, Symbian, and many more.
    Downloads: 24 This Week
    Last Update:
    See Project
  • 4
    libwdi

    libwdi

    Windows Driver Installer library for USB devices

    libwdi is a cross-platform open-source C library focused on simplifying the installation of device drivers for USB hardware that otherwise does not have automatic driver support, making it especially useful for developers building installers or system management tools. The library abstracts away many of the complexities of USB device enumeration and driver deployment on Windows systems, such as creating a list of devices, preparing appropriate driver files, and invoking the operating system’s driver installation mechanics, so your software doesn’t have to re-implement these low-level tasks. It provides a clean API that includes functions to detect driverless USB devices, prepare driver packages, install drivers programmatically, and handle logging and error codes reliably. Projects integrate this library into custom installers, automated provisioning scripts, or hardware management solutions where users need seamless driver setup without manual steps.
    Downloads: 22 This Week
    Last Update:
    See Project
  • The Industry Leading Platform for eCommerce Enablement and Analytics Icon
    The Industry Leading Platform for eCommerce Enablement and Analytics

    With MikMak Insights, brands gain real-time eCommerce analytics on the channels, campaigns, creative, and audiences that drive conversions.

    MikMak’s Where to Buy Shoppable Solutions help multichannel brands drive sales, grow market share, and increase profitability while reducing costs across categories such as CPG, Grocery, Alcohol, Beauty, Personal Care, Pet Care, Home Care, Consumer Electronics, Home Appliances, Toys, and more.
    Learn More
  • 5
    FluidSynth

    FluidSynth

    A real-time SoundFont software synthesizer

    A real-time software synthesizer based on the SoundFont 2 specifications. It can be used for live audio synthesis of MIDI events or for rendering MIDI files to disk, using SoundFont instruments. It can also be embedded in other applications. This is not a application with a graphical user interface, however there are several GUI applications which utilize FluidSynth.
    Leader badge">
    Downloads: 138 This Week
    Last Update:
    See Project
  • 6
    WebP Codec

    WebP Codec

    Library to encode and decode images in WebP format

    libwebp is the reference codec library for Google’s WebP image format, providing both encoding and decoding along with command-line tools. It supplies cwebp to compress images into WebP and dwebp to decompress them back, making it easy to test quality/size trade-offs across presets and tuning parameters. The GitHub repository is a mirror; the canonical source of truth lives on Chromium’s git, and developer docs are hosted on WebP’s portal. The project underpins WebP support across browsers, imaging libraries, and many native apps thanks to its stable C API. Additional companion repos host test data and demos, including JavaScript builds and timing tests for various platforms. As a widely deployed codec, libwebp balances compression efficiency, speed, and integration simplicity across platforms.
    Downloads: 19 This Week
    Last Update:
    See Project
  • 7
    Open source DKIM library, MTA filter implementation and associated tools.
    Leader badge">
    Downloads: 99 This Week
    Last Update:
    See Project
  • 8
    Expat

    Expat

    Fast streaming XML parser written in C99 with >90% test coverage

    Welcome to Expat, a stream-oriented XML parser library written in C. Expat excels with files too large to fit RAM, and where performance and flexibility are crucial. There are a number of applications, libraries, and hardware using Expat, as well as bindings and 3rd-party wrappers. Expat is packaged everywhere. This is Expat, a C99 library for parsing XML 1.0 Fourth Edition, started by James Clark in 1997. Expat is a stream-oriented XML parser. This means that you register handlers with the parser before starting the parse. These handlers are called when the parser discovers the associated structures in the document being parsed. A start tag is an example of the kind of structure for which you may register handlers.
    Downloads: 18 This Week
    Last Update:
    See Project
  • 9
    LVGL

    LVGL

    Powerful and easy-to-use embedded GUI library with many widgets

    Powerful and easy-to-use embedded GUI library with many widgets, advanced visual effects (opacity, antialiasing, animations), and low memory requirements (16K RAM, 64K Flash). LVGL provides everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects, and a low memory footprint. LVGL is an open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects, and a low memory footprint. Create stunning user interfaces with LVGL! Take advantage of its platform-independent nature and use one library with small microcontrollers or high-end processors. The LVGL is a lightweight embedded library for displays and touchscreens providing everything required to build fully featured-embedded GUIs. Do you like Python? Create your UI in MicroPython with LVGL.
    Downloads: 17 This Week
    Last Update:
    See Project
  • Transform months of data modeling and coding into days. Icon
    Transform months of data modeling and coding into days.

    Automatically generate, document, and govern your entire data architecture.

    Efficiently model your business and data models, and generate code for your data pipelines, data lakehouse, and analytical applications
    Learn More
  • 10
    HIDAPI library

    HIDAPI library

    A Simple cross-platform library for communicating with HID devices

    HIDAPI is a multi-platform library that allows an application to interface with USB and Bluetooth HID-Class devices on Windows, Linux, FreeBSD, and macOS. HIDAPI can be either built as a shared library (.so, .dll or .dylib) or can be embedded directly into a target application by adding a single source file (per platform) and a single header.
    Downloads: 16 This Week
    Last Update:
    See Project
  • 11
    GLFW

    GLFW

    A multi-platform library for OpenGL, OpenGL ES, Vulkan, etc.

    GLFW is an Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. It provides a simple API for creating windows, contexts and surfaces, receiving input and events. Gives you a window and OpenGL context with just two function calls. Support for OpenGL, OpenGL ES, Vulkan and related options, flags and extensions. Support for multiple windows, multiple monitors, high-DPI and gamma ramps. Support for keyboard, mouse, gamepad, time and window event input, via polling or callbacks. Comes with a tutorial, guides and reference documentation, examples and test programs. Open Source with an OSI-certified license allowing commercial use. Access to native objects and compile-time options for platform specific features. Community-maintained bindings for many different languages.
    Downloads: 15 This Week
    Last Update:
    See Project
  • 12
    Quake3e

    Quake3e

    Improved Quake III Arena engine

    Quake3e is a modernized fork of id Software’s Quake III Arena engine, tailored for mod developers and competitive players. It includes numerous technical improvements while preserving the core gameplay and mod compatibility of the original. Focused on performance, security, and extended modding capabilities, it has become a popular base for competitive tournaments and engine forks. With its updated rendering path and support for high refresh rates, Quake3e offers a slick and responsive gameplay experience for old-school FPS fans.
    Downloads: 15 This Week
    Last Update:
    See Project
  • 13
    libevent

    libevent

    Event notification library

    The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts. libevent is meant to replace the event loop found in event driven network servers. An application just needs to call event_dispatch() and then add or remove events dynamically without having to change the event loop. The internal event mechanism is completely independent of the exposed event API, and a simple update of libevent can provide new functionality without having to redesign the applications. As a result, Libevent allows for portable application development and provides the most scalable event notification mechanism available on an operating system. Libevent can also be used for multi-threaded applications, either by isolating each event_base so that only a single thread accesses it, or by locked access to a single shared event_base.
    Downloads: 15 This Week
    Last Update:
    See Project
  • 14
    [OFFICIAL] tinyfiledialogs C C++ v3.21.3

    [OFFICIAL] tinyfiledialogs C C++ v3.21.3

    inputbox password WIN OSX GTK QT Console VCPKG C# Lua R Fortran Pascal

    one C/C++ file & header ==> 8 functions: - beep - tray notify popup - message & question - input & password - save file - open file(s) - select folder - color picker complements OpenGL Vulkan GLFW GLUT GLUI VTK SFML TGUI SDL Ogre Unity3d ION OpenCV CeGui MathGL GLM CPW GLOW Open3D ImGui MyGui GLT NGL STB Nuklear Fenster MicroUi & head-less programs NO INIT NO MAIN LOOP NO LINKING NO INCLUDE win (XP to 11) ASCII MBCS UTF-8 UTF-16 (wchar_t) - native dialogs osx/unix ASCII UTF-8 - applescript kdialog zenity shanty … ° SSH console / X forwarding / waypipe Wayland ° the dialogs can be forced into console mode ° curses dialogs via Dialog.exe/Dialog (disabled by default) C89/C23 & C++98/C++23 compliant VisualStudio MinGW GCC Clang TinyCC IntelCC OWCC BCC SunCC on Windows Mac Linux Bsd Solaris Minix Raspbian Flatpak Haiku bindings: VCPKG C# R Lua Rust Haskell Java AllegroBasic Fortran Pascal D JavaScript Kotlin click tab 'Files' for prototypes
    Leader badge">
    Downloads: 74 This Week
    Last Update:
    See Project
  • 15
    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: 14 This Week
    Last Update:
    See Project
  • 16

    yafu

    Automated integer factorization

    Check yafu on github for the latest code. YAFU (with assistance from other free software) uses the most powerful modern algorithms (and implementations of them) to factor input integers in a completely automated way. The automation within YAFU is state-of-the-art, combining factorization algorithms in an intelligent and adaptive methodology that minimizes the time to find the factors of arbitrary input integers. Most algorithm implementations are multi-threaded, allowing YAFU to fully utilize multi- or many-core processors (including SNFS, GNFS, SIQS, and ECM). YAFU is primarily a command-line driven tool. You provide the number to factor and, via screen output and log files, YAFU will provide you the factors. There is also an interactive environment similar to MATLAB or PARI/GP, where you can type commands and store results. YAFU is very customizable, through the optional use of many many command line parameters and a very capable expression inter
    Leader badge">
    Downloads: 77 This Week
    Last Update:
    See Project
  • 17
    Cosmopolitan

    Cosmopolitan

    Build-once run-anywhere c library

    Cosmopolitan Libc makes C a build-once run-anywhere language, like Java, except it doesn't need an interpreter or virtual machine. Instead, it reconfigures stock GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS with the best possible performance and the tiniest footprint imaginable. Cosmopolitan can be compiled from source on any Linux distro. GNU make needs to be installed beforehand. This is a freestanding hermetic repository that bootstraps using a vendored static gcc9 executable. No further dependencies are required.
    Downloads: 13 This Week
    Last Update:
    See Project
  • 18
    libplacebo

    libplacebo

    Official mirror of libplacebo

    libplacebo is a flexible, high-performance graphics library built on top of Vulkan, designed to provide reusable GPU-accelerated components for media applications. It originated as a core part of the rendering pipeline for the mpv media player and has since grown into a standalone library used for tone mapping, dithering, color space conversion, and more. libplacebo is ideal for developers looking to integrate sophisticated video rendering and post-processing into their own applications with full control over shaders and rendering stages.
    Downloads: 13 This Week
    Last Update:
    See Project
  • 19
    Shockolate

    Shockolate

    A minimalist and cross platform System Shock source port

    SystemShock is the open-source reimplementation of System Shock, a groundbreaking 1994 cyberpunk FPS/RPG hybrid originally developed by Looking Glass Studios. This project reverse-engineers the original DOS game, porting it to modern systems while preserving gameplay, visuals, and audio as authentically as possible. It uses SDL2 and modern C++ to bring the classic experience to new platforms, with options for widescreen support and quality-of-life enhancements. SystemShock’s open codebase allows the community to contribute fixes, mods, and compatibility improvements.
    Downloads: 11 This Week
    Last Update:
    See Project
  • 20
    ffmpeg.wasm

    ffmpeg.wasm

    FFmpeg for browser, powered by WebAssembly

    ffmpeg.wasm is a pure WebAssembly (and JavaScript/TypeScript) port of FFmpeg that enables in-browser media recording, conversion, and streaming—letting developers perform video/audio processing entirely client-side without server uploads. Transpiled via Emscripten from FFmpeg and its codecs into WebAssembly. Supports both single-threaded and multi-threaded cores using web workers. Written in TypeScript for improved developer experience.
    Downloads: 11 This Week
    Last Update:
    See Project
  • 21
    Allegro

    Allegro

    The official Allegro 5 git repository. Pull requests welcome

    Allegro 5 is the latest major revision of the Allegro library, designed to take advantage of modern hardware, including hardware acceleration using 3D cards.
    Downloads: 10 This Week
    Last Update:
    See Project
  • 22
    minizip-ng

    minizip-ng

    Fork of the zip manipulation library found in the zlib distribution

    minizip-ng is a zip manipulation library written in C that is supported on Windows, macOS, and Linux. Minizip was originally developed by Gilles Vollant in 1998. It was first included in the zlib distribution as an additional code contribution starting in zlib 1.1.2. Since that time, it has been continually improved upon and contributed to by many people. The original project can still be found in the zlib distribution that is maintained by Mark Adler. The motivation behind this repository has been the need for new features and bug fixes to the original library which had not been maintained for a long period of time. The code has been largely refactored and rewritten in order to help improve maintainability and readability. A compatibility layer has been provided for consumers of the original minizip library.
    Downloads: 10 This Week
    Last Update:
    See Project
  • 23
    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: 9 This Week
    Last Update:
    See Project
  • 24
    libssh2

    libssh2

    the SSH library

    libssh2 is a client-side C library implementing the SSH2 protocol. The libssh2 offers a large amount of functions and this is an attempt to provide HTML versions of the man pages present in the source tree. These pages are updated automatically from the source code repository.
    Downloads: 9 This Week
    Last Update:
    See Project
  • 25
    LibVNCServer

    LibVNCServer

    LibVNCServer/LibVNCClient are cross-platform C libraries

    LibVNCServer, a library for easy implementation of a VNC server. VNC is a set of programs using the RFB (Remote Frame Buffer) protocol. They are designed to "export" a frame buffer via net: you set up a server and can connect to it via VNC viewers. If the server supports WebSockets (which LibVNCServer does), you can also connect using an in-browser VNC viewer like noVNC. LibVNCServer/LibVNCClient are cross-platform C libraries that allow you to easily implement VNC server or client functionality in your program.
    Downloads: 8 This Week
    Last Update:
    See Project