Потрясающий c
Кураторский список C Хорошие вещи. Этот список содержит только код с открытым исходным исходным кодом (как определено связанным определением с открытым исходным кодом) и продавцами, которые не злы для физических ресурсов.
Это выпущено по лицензии Creative Commons-Attribution-Sharealik, версия 4 (SPDX Code CC-BY-SA-4.0 ). Вы можете найти его текст в файле лицензии.
Важное примечание: этот проект не индексирует ничего C ++-связанный; рассматривается только чистый C.
Примечание для участников: если вы хотите сделать запрос на привлечение, пожалуйста, прочитайте Anforming.md в первую очередь.
Содержимое
- Ай
- Сравнительный анализ
- Строительные системы
- Компиляторы
- Сжатие
- Параллелизм и параллелизм
- Крипто
- База данных
- Структуры данных
- Отладка
- Создание документации
- Редакторы
- Встроенные сценаристы
- Рамки
- Игровое программирование
- Графика
- Графический пользовательский интерфейс
- Хешинг
- Обучение, ссылка и учебные пособия
- Справочные ресурсы онлайн
- Ресурсы для начинающих онлайн
- Промежуточные ресурсы онлайн
- Расширенные ресурсы онлайн
- Справочники
- Новички книги
- Промежуточные книги
- Продвинутые книги
- Лексинг и анализ
- Управление памятью
- Мультимедиа
- Сеть и Интернет
- Числовой
- Профилирование
- Регулярно
- Сериализация
- Коллекции исходного кода
- Стандартные библиотеки
- Манипуляция по струнам
- Структурированная обработка файлов
- CSV
- Json
- INI
- Другие
- XML
- Ямл
- Тестирование
- Текстовые редакторы расширения
- Инструменты
- Коммунальные услуги
- Веб -фреймворки
- Среда Windows
Ай
Компьютерное зрение, нейронные сети, машинное обучение и другие подобные вещи. По сути, если ваш университет называет это ИИ, он живет здесь.
- CCV - C на основе/Cached/Core Computer Vision Library; Современное компьютерное зрение.
BSD-3-Clause - Cranium - портативный, только заголовок библиотека Ann в C99.
MIT - Фан - библиотека быстрого искусственной нейронной сети; реализация нейронных сетей.
GPL-2.0-only - Genann - Simple Ann в C89, без дополнительных зависимостей.
Zlib - Канн - библиотека Энн.
MIT - Libdeep - Библиотека глубокого обучения.
BSD-3-Clause - M2CGEN - инструмент CLI для обученных транспилированными классическими моделями ML в нативный код C с нулевыми зависимостями.
MIT - SOD - встроенное компьютерное зрение и библиотека машинного обучения.
GPL-3.0-only
Сравнительный анализ
Сравнение производительности различных подсистем в различных архитектурах чипов/системы.
- B63-Легкий инструмент для микро-вспышки для C.
Apache-2.0
Строительные системы
Инструменты, которые автоматизируют строительство и тестирование проектов в C.
- AutoTools - также известная как система сборки GNU (Automake, AutoConf, Libtool ...) является одной из наиболее широко используемых систем сборки (Configure && Make). GPL-1.0-OR-Later
- AutoTools Project Skeleton - простой скелет AutoTools (шаблон) для быстрого начала новых проектов.
BSD-2-Clause - Cmake - кроссплатформенное семейство инструментов, предназначенное для создания, пакетного и тестового программного обеспечения.
BSD-3-Clause - GNU Make - Tool, который управляет генерацией исполняемых файлов и других не источников программы.
GPL-3.0-or-later - Meson - очень быстрая, удобная система сборки. На основе ниндзя.
Apache-2.0 - Premake - Утилита командной строки, которая считывает сценарий определения программного проекта и использует его для создания файлов проекта для визуальной студии и GNU. Другие цели также работают.
BSD-3-Clause - Scons - Программный инструмент с использованием Python.
MIT - Xmake - кроссплатформенная утилита сборки.
Apache-2.0 - Zproject - генератор проектов и инструмент поддержки системы сборки.
MPL-2.0
Компиляторы
Компиляторы, а также компиляция и компиляция, связанные с инструментами.
- CCACHE - Кэш компилятора, предназначенный для ускорения перекомпиляции.
GPL-3.0-or-later - Clang - компилятор для LLVM. Поддерживает C11.
NCSA - CPROC - компилятор C11, использующий QBE в качестве бэкэнда.
ISC - DISTCC - Программа, которая позволяет распределять сборки между несколькими машинами.
GPL-2.0-or-later - Фирма - Библиотека, которая предоставляет промежуточное представление, оптимизацию, оптимизацию и генерацию кода сборки, подходящие для использования в компиляторах. Поставляется с примером C Front-End по той же лицензии.
LGPL-2.1-only - GCC - обеспечивает компилятор C как часть своего набора компилятора. Поддерживает C11.
GPL-3.0-or-later - PCC - почтенный компилятор. Поддерживает C99. Различные лицензии, все открытый исходный код.
Сжатие
- Blosc-чрезвычайно быстрая, многопоточная библиотека метакомпрессора. Различные лицензии, все открытый исходный код.
- Brotli - Библиотека алгоритмов сжатия общего назначения. Имеет скорости, сопоставимые с дефлятными, но гораздо более высокими коэффициентами сжатия.
MIT - CLZIP - C Версия высококачественного компрессора данных LZIP (реализация LZMA).
GPL-2.0-or-later - Croaring - C реализация ревущих растровых карт.
Apache-2.0 - FintestateEntropy - два высокоэффективных кодека сжатия, оптимизированные для современных процессоров.
BSD-2-Clause - Плотность - супер -бывшая библиотека сжатия.
BSD-3-Clause - Heatshrink - библиотека сжатия данных/декомпрессия для встроенных и в реальном времени.
ISC - FAST_ZLIB - Улучшен Zlib, который работает в 2-10 раз быстрее.
BSD-3-Clause - Fastlz - Lightning -Fast Loss Loss Library Compression (тип LZ77). Вместе с маленькой целью, как семейства коры Arm Cortex-M. Исходный код, непосредственно подключенный к вашему проекту (пара файлов H/C), без динамического распределения памяти.
MIT - Huffandpuff - минимальный энкодер Huffman и декодер. Общественный достояние.
- Libzip - C Библиотека для чтения, создания и изменения архивов Zip.
BSD-3-Clause - Libbzip2-Без патента, высококачественная библиотека сжатия данных.
BSD-4-Clause - Ящерица - ранее LZ5; Эффективный компрессор с быстрой декомпрессией. Достигает коэффициентов сжатия, сравнимых с Zip и Zlib с скоростями декомпрессии 1000 МБ/с и быстрее.
BSD-2-Clause - LZ4 - библиотека для чрезвычайно быстрого алгоритма сжатия.
BSD-2-Clause - LZO - Библиотека быстрого сжатия данных.
GPL-2.0-or-later - Pixz - параллель, индексированный XZ компрессор.
BSD-2-Clause - Shoco - компрессор для небольших текстовых строк.
MIT - SIMDCOMP - Простая библиотека для сжатия списков целых чисел с использованием бинарной упаковки. Использует инструкции SIMD на x86.
BSD-3-Clause - SMAZ - Эффективная библиотека сжатия строк.
BSD-3-Clause - Сквош - библиотека абстракции сжатия, в комплекте с некоторыми утилитами.
MIT - Turbopfor - самое быстрое сжатие целочисленного целого числа.
GPL-2.0-or-later - Turborle - наиболее эффективная кодировка длины пробега.
GPL-2.0-or-later - Zip - Действительно маленькая библиотека обработки архива Zip.
Unlicense - Zlib - массово Spiffy, но деликатно ненавязчивая библиотека сжатия.
BSD-3-Clause - Libarchive - Libarchive - это портативная, эффективная библиотека C, которая может читать и писать потоковые архивы в различных форматах.
BSD-3-Clause - Zlib-ng-замена Zlib с оптимизацией для систем «следующего поколения».
BSD-3-Clause - Zstandard-быстрый алгоритм сжатия без потерь, нацеленный на сценарии сжатия в реальном времени на уровне Zlib или лучших соотношениях сжатия.
BSD-3-Clause
Параллелизм и параллелизм
- CCHAN - небольшая библиотека для конструкций канала для межполосной связи. Общественный достояние.
- CheckedThreads - простая библиотека для параллелизма, со встроенной проверкой для условий гонки.
BSD-2-Clause - CK - примитивы параллелизма, механизмы мелиорации безопасной памяти и неблокирующие структуры данных.
BSD-2-Clause - FCFS RWLOCK-первые считываемые читатели/писатели заблокируют первые работы для потоков POSIX.
CC0-1.0 - Libaco - пылающая быстрое и легкое C -асимметричная библиотека Coroutine.
Apache-2.0 - Libconcurrent - Библиотека программирования, использующая Coroutines, для C11.
BSD-3-Clause - LIBCSP - БИБЛИОТЕКА COMIBROLENCE C SODARLUNRINGE C, под влиянием модели CSP.
MIT - Libdill - библиотека, которая упрощает структурированное одновременное программирование.
MIT - LIBHL - Библиотека Реализация API -защитника, защищенного потоком для управления диапазоном структур данных. Также предоставляет некоторые вспомогательные функции и структуры для одновременного и беззаботного программирования.
LGPL-3.0-only - Liburcu - библиотека синхронизации данных, которая линейно масштабируется с количеством ядер.
LGPL-2.1-or-later - Мельница - параллелизм в стиле Go.
MIT - oclkit - двухлетная обертка OpenCl.
GPL-3.0-or-later - OCL-MLA-OpenCl Abstractions Mid-Level.
BSD-3-Clause - OpenMP - набор прагм, предназначенный для легкой параллелизации кода. Стандарт (лицензирование не применимо).
- Открыть MPI - Сообщение прохождения интерфейса реализация.
BSD-3-Clause - PAL - Оптимизированная библиотека по математике, параллельной обработке и перемещению данных.
Apache-2.0 - PTH-Портативная реализация для непреодолимого приоритетного планирования для нескольких потоков выполнения.
GPL-3.0-or-later - Pthreads - библиотека потоков POSIX. Стандарт (лицензия не применима).
- TinyCthread - портативная, небольшая реализация потоков C11 API.
Zlib
Крипто
В основном библиотечные реализации известных криптографических алгоритмов или протоколов.
- GNU SASL - реализация простой аутентификации и уровня безопасности и нескольких общих механизма SASL.
GPL-3.0-or-later - GNUTLS - Безопасная библиотека связи, реализация SSL, TLS и DTLS.
LGPL-2.1-or-later - Libgcrypt - библиотека криптографии общего назначения с целым рядом доступных шифров.
LGPL-2.1-or-later - OpenSSL - реализация протоколов SSL и TLS. Также включает в себя криптографическую библиотеку. Двойная лицензия в соответствии с лицензией OpenSSL и лицензией SSLEAY.
- Liboqs - Библиотека для квантово -устойчивых криптографических алгоритмов.
MIT - Libsodium-современная и простой в использовании крипто-библиотека.
MIT - Libtomcrypt - довольно всеобъемлющий, модульный и портативный криптографический инструментарий. Общественный достояние.
- MBED TLS - Еще одна крипто -реализация.
Apache-2.0 - Miracl - многообразие целое число и рациональная арифметическая криптографическая библиотека; SDK для криптографии эллиптической кривой.
AGPL-3.0-or-later - Резервник - Сбор функций хэш, шифров, инструментов, библиотек и материалов, связанных с криптографией и безопасностью. Общественный достояние.
- S2N - C99 Реализация протоколов TLS/SSL, предназначенную для того, чтобы быть простым, быстрым и с обеспечением безопасности в качестве приоритета.
Apache-2.0 - SPHLIB - набор реализаций различных хэш -функций, включая несколько криптографических.
MIT - Trezor -Crypto - сильно оптимизированные крипто -алгоритмы для встроенных устройств.
MIT - BFISH - Одиночный включает в себя крипто -библиотеку ANSI -C Blowfish ECB. Общественный достояние.
База данных
Базы данных и хранилища данных с CPI C.
- Berkeleydb-Библиотека для высокопроизводительной встроенной базы данных для данных ключей.
AGPL-3.0-only - DuckDB - Быстрая аналитическая база данных в процессе, с C API.
MIT - EJDB2 - Embeddable JSON Database Engine.
MIT - Groonga - Столбковый магазин с полнотекстовым поиском.
LGPL-2.1-only - Hiredis - Минималистичная клиентская библиотека для Redis.
BSD-3-Clause - Libmongoc - высокопроизводительная клиентская библиотека для MongoDB.
Apache-2.0 - LMDB-Ультрастрабильный, ультракомпактный хранилище встроенных ключевых данных.
OLDAP-2.8 - MySQL - самая популярная в мире база данных с открытым исходным кодом.
GPL-2.0-only - PostgreSQL - мощная система с реламентальной объектом базы данных.
PostgreSQL - Redis - Advanced Key -Value Store.
BSD-3-Clause - София - современная, встраиваемая база данных ключей.
BSD-2-Clause - SPARKEY - Простая постоянная библиотека хранения клавиш/значения. Предназначен для нагрузки с тяжелыми чтением с нечастыми, большими объемными вставками.
Apache-2.0 - SQLite-автономный, без сервера, нулевой конфигурации, транзакционного двигателя базы данных SQL. Общественный достояние.
- Unqlite-автономный, без сервера, нулевой конфигурации, транзакционный двигатель NOSQL.
BSD-2-Clause - WHITEDB - Легкая библиотека баз данных, полностью работающая в основной памяти.
GPL-3.0-or-later - FlashDB-ультра-легкая база данных, которая поддерживает данные ключей и временных рядов.
Apache-2.0 - Tdengine-высокопроизводительная, облачная база данных временных рядов.
AGPL-3.0-only
Структуры данных
- C-Macro-Collections-генерируйте простые и общие структуры данных с использованием макросов.
MIT - Clist - простая и легкая реализация динамического массива.
BSD-2-Clause - Collections -C - Библиотека общих структур данных.
LGPL-3.0-or-later - DS - Общие структуры данных и алгоритмы.
MIT - IGRAPH - библиотека обработки графика.
GPL-2.0-or-later - KDTREE - простая библиотека для работы с KD -деревьями.
BSD-3-Clause - Libavl - Библиотека, содержащая ряд самобалансирующих бинарных деревьев.
GPL-3.0-or-later - Libcdada - небольшая, портативная библиотека без макроса для основных структур данных (список, установка, карта, очередь ...) в C (C ++ Backend).
BSD-2-Clause - liblfds - портативная библиотека структуры данных без блокировки. Общественное достояние (точнее, какая бы личная лицензия вы ни хотели).
- Libsrt - мягкие и жесткие структуры данных в реальном времени.
BSD-3-Clause . - list.h - реализации для однозначных и вдвойне связанных функций списка.
GPL-3.0-only - M*lib - библиотека для общих, но контейнеры Typesafe c. Реализовано как только заголовок.
BSD-2-Clause - OffBrand - Сбор общих, ссылочных структур данных.
MIT - PackedArray - случайный массив плотно упакованных не знаковых целых чисел любой желаемой ширины. Имеет оптимизированную реализацию SIMD.
WTFPL - RB3PTR - Красное черное дерево. Раскрывает практически все примитивы реализации, поэтому можно использовать для таких сценариев, как увеличение, множественные функции совместимых упорядочения и многое другое.
MIT - Uthash - реализация хеш -таблицы с одной файлом.
BSD-1-Clause - Vector.h - библиотека заголовок для типичных списков.
MIT
Отладка
Потому что мы все должны делать это иногда. Различные инструменты для облегчения или лучшей отладки, а также библиотек или кода, которые позволяют лучше работать отладки.
- C -Reduce - Инструмент, который принимает большой C -файл с интересующим свойством и автоматически производит гораздо меньший файл C, который имеет одинаковое свойство. Предназначен для того, чтобы помочь создать минимальные случаи с демонстрацией ошибок в сложном коде.
BSD-3-Clause - CBMC - C Проверка модели; Инструмент для проверки границ массива, безопасности указателя и определенных пользовательских утверждений.
BSD-4-Clause - CFLOW - анализирует коллекцию исходных файлов и печатает поток управления графическими графиками в программе.
GPL-3.0-or-later - Сложность - инструмент для измерения сложности исходного кода.
GPL-3.0-or-later - CSCOUT - Анализатор исходного кода и рефакторинг браузера для программ C.
GPL-3.0-only - DDD-Графический фронт для ряда отладчиков командной строки.
GPL-3.0-or-later - отладка - библиотека с одним заголовком для более легкой «отладки печати».
MIT - ESBMC - Эффективная ограниченная модель на основе SMT; Инструмент для проверки отдельных и многопоточных программ, утверждений пользователей, переполнения и безопасности указателя/памяти.
Apache-2.0 - GDB - GNU Project Debugger.
GPL-3.0-or-later - LLDB - отладчик LLVM.
NCSA - RR - отладчик, который записывает нетерминированные казни, чтобы допустить детерминированную отладку.
BSD-2-Clause - Valgrind - диапазон инструментов динамического анализа, включая проверку утечки.
GPL-2.0-only
Создание документации
- CXREF - генерирует документацию в латекске, HTML, RTF или SGML.
GPL-2.0-only - DOCONCE - скромно помеченный язык разметки, который можно использовать для генерации ряда форматов.
BSD-3-Clause - Doxygen - De -Facto Standard Tool для генерации документации из аннотированных источников. Может генерировать большой диапазон форматов.
GPL-2.0-only
Редакторы
Причудливые, редакторы типа IDE. Если вам нужен текстовый редактор программиста, посмотрите в другом месте. Кроме того, все, что вы используете, скорее всего, поддерживает C в любом случае.
- Anjuta Devstudio - Gnome Ide.
GPL-2.0-only - Code :: Blocks-Extendable, настраиваемая IDE, поддерживающая C.
GPL-3.0-only - CodeLite - кроссплатформенный IDE.
GPL-2.0-only - GEANY - маленькая и быстрая IDE.
GPL-2.0-or-later - KDEVENT - KDE IDE.
GPL-2.0-only - Zinjai - простой, легкий и богатый функциями IDE.
GPL-3.0-only
Встроенные сценаристы
Когда C не является правильным решением, или когда вам нужен более динамичный механизм конфигурации:
- Duktape - Embeldable JavaScript Engine с акцентом на портативность и компактную зону Footprint
MIT . - Metacall - кроссплатформенное время выполнения полиглота, которое поддерживает Nodejs, JavaScript, TypeScript, Python, Ruby, C#, Wasm, Java, Cobol и другие.
Apache-2.0
Рамки
Большие библиотеки, которые предоставляют структуры данных и другие вещи, которые вы ожидаете от «современной» стандартной библиотеки.
- APR - Apache Portable Stime; Другая библиотека кроссплатформенных функций.
Apache-2.0 - C Алгоритмы - Сбор общих алгоритмов и структур данных.
ISC - CPL - общая библиотека трубопроводов; Набор библиотек, предназначенных для того, чтобы быть комплексным, эффективным и надежным программным инструментом.
GPL-2.0-only - EFL - большой сбор полезных структур и функций данных. Различные лицензии, все открытый исходный код.
- Глиб - библиотека коммунальных функций и структур, предназначенная для того, чтобы быть портативным, эффективным и мощным.
LGPL-2.1-only - KLIB - небольшие и легкие реализации общих алгоритмов и структур данных.
MIT - Libcork - функции и структуры утилиты, разработанные для систем с ограниченными ресурсами. Может быть встроен.
BSD-3-Clause - Libnih - легкая библиотека функций и структур.
GPL-2.0-only - LIBU - небольшая библиотека основных утилит, включая распределение памяти, манипулирование строк и ведение журнала.
BSD-3-Clause - PBL - крупная библиотека утилит, в которых представлены структуры данных, среди прочего.
LGPL-2.1-or-later - Plibsys - кроссплатформенная система C Библиотека. Ноль сторонних зависимостей использует только нативные системы.
MIT - QLIBC - простая и мощная библиотека, разработанная как замена для скольжения, сосредоточившись на том, чтобы быть маленьким и легким.
BSD-2-Clause - SC - Общие библиотеки и структуры данных для C.
MIT - Tbox - многоплатформенная библиотека с большим количеством возможностей.
Apache-2.0 - PSPSDK - SDK с открытым исходным кодом для развития Homebrew PSP. Различные лицензии.
Игровое программирование
Двигатели, библиотеки и другие полезные вещи специально для создания игр.
- Allegro - кросс -платформенная, разработка видеоигр и мультимедийная библиотека.
Zlib - AssetKit? Импортер 3D -актива/библиотека экспортера/UTIL на основе Collada/GLTF Spects
MIT - Астера - C99 Cross Platform 2D Game Library
MIT - CGLM -? Оптимизированная OpenGL/Graphics Math (GLM) для C.
MIT - Brinkmunk2d - быстрая и легкая библиотека физики 2D игры.
MIT - CMT -? C привязки/обертки для металлической графики Apple.
MIT - CORANGE-Game Engine в Pure C.
BSD-2-Clause - CSFML - связывание для SFML.
Zlib - Darkplaces - Модифицированная версия двигателя Quake2.
GPL-2.0-only - Эпоксидная смола - библиотека для обработки управления указательными указателями OpenGL.
MIT - Exengine - 3D Game Engine в C99 с начальным шаблоном.
MIT - FLECS - многопоточная система компонентов объекта, написанная для C89 & C99
MIT - Freecell Solver - Набор библиотек и программ командной строки для автоматического решения FreeCell и некоторых аналогичных вариантов Card Solitaire.
MIT - FreeGlut - Альтернатива инструментарии Utility OpenGL. Позволяет создавать и управлять Windows с контекстами OpenGL.
X11 - GLFW - многоплатформенная библиотека для создания Windows с контекстами OpenGL.
Zlib - ioquake3 - Quake3 Engine, наконец, освобожден.
GPL-2.0-only - Казмат - Математическая библиотека для игр.
BSD-2-Clause - Libao - кроссплатформенная аудио библиотека с широким спектром выходов.
GPL-2.0-or-later - Librg-Pure C99 Game Networking Library для создания простых и элегантных кроссплатформенных многопользовательских решений.
Apache-2.0 - Матч - Математическая библиотека для 2D и 3D программирования.
ZLib - ORX-портативный, легкий, на основе плагинов, управляемого данными, 2D-ориентированный игровой двигатель.
Zlib - Quake - Quake Engine.
GPL-2.0-only - Quake2 - Quake2 Engine.
GPL-2.0-only - Raylib-простая и простая в использовании библиотеку для изучения программирования видеоигр.
Zlib - Retroarch - Рекламный фронт для либретро.
GPL-3.0-only - SDL2-кроссплатформенная библиотека, предназначенная для обеспечения низкоуровневого доступа к аудио, клавиатуру, мышью, джойстику и графическому оборудованию через OpenGL.
Zlib - SDL-GPU-Библиотека для высокопроизводительной, современной 2D-графика. На основе SDL.
MIT - Сигил - библиотека интеграции звука, ввода и графики; Простая альтернатива другим библиотекам для выполнения всех этих вещей. Различные лицензии, все открытый исходный код.
- Uastar - минимальная реализация A*.
ZLib
Графика
Программная манипуляция графики в C; Если вы хотите сделать графический интерфейс, в разделе графического пользовательского интерфейса есть то, что вам нужно.
- AssetKit? Импортер 3D -актива/библиотека экспортера/UTIL на основе Collada/GLTF Spects
MIT - Каир - 2D графическая библиотека.
LGPL-2.1-only или MPL-1.1 . - CMT -? C привязки/обертки для металлической графики Apple.
MIT - GIFLIB - Библиотека для чтения и написания GIF -изображений.
MIT - Графен - тонкий слой графических типов данных.
MIT - Хеман - крошечная библиотека утилит изображений, касающаяся карт высоты, нормальных карт, полей расстояний и тому подобного.
MIT - Libcaca - рендерер ASCII для терминальных интерфейсов.
WTFPL - LIBGD - Библиотека для динамического создания изображений программистами.
MIT - Libimagequant-небольшая портативная библиотека для высококачественного преобразования изображений RGBA в 8-битные индексированные цветные изображения.
GPL-3.0-or-later - Libjpeg -Turbo - быстрая библиотека для чтения и написания файлов JPEG. Различные лицензии.
- Libpng - Официальная справочная библиотека PNG.
Libpng - Librsvg - Библиотека для рендеринга файлов SVG с использованием Каира.
LGPL-2.1-or-later - Libsixel - Библиотека реализует протокол Sixel, позволяющий красивой графике в вашем терминале.
MIT - LibSpng - более простой интерфейс для чтения и написания файлов PNG.
BSD-2-Clause - Libvips - библиотека обработки изображений.
LGPL-2.1-or-later - Libxmi - Библиотека функций для Rasterizing 2D Vector Graphics.
GPL-3.0-or-later - Lightmapper - библиотека для выпечки Lightmap, используя существующий рендерер OpenGL. Общественный достояние.
- Маленькая CMS - система управления цветом. Он обеспечивает быстрые преобразования между профилями ICC.
MIT - Mozjpeg - Улучшен JPEG Encoder.
BSD-3-Clause - NANOVG - библиотека с анти -ализированным 2D векторным рисунком на вершине OpenGL, для пользовательского интерфейса и визуализаций.
Zlib - OpenGL - отраслевой стандарт для высокопроизводительной графики, с нативным связыванием C. Различные лицензии.
- Plutovg - автономная 2D -векторная графическая библиотека в C
MIT - SAIL - ⛵ Отсутствующая библиотека декодирования маленьких и быстрых изображений для людей (не для машин)
MIT
Графический пользовательский интерфейс
Виджет инструментов или вещи, предназначенные для использования аналогичным образом.
- Gtk+ - Cross -Platform Widget Toolkit.
LGPL-2.1-only - IUP - Еще один кроссплатформенный инструментарий виджета.
MIT - Микроуи - крошечная библиотека пользовательского интерфейса с непосредственным режимом, написанная в портативной ANSI C.
MIT - Nappgui - Профессиональный SDK для создания кроссплатформенных настольных приложений с использованием C.
MIT - Nuklear - Small, C89, набор инструментов для одноголовного виджета. Общественный достояние.
- TinyFileDialogs - библиотека с одним файлом для простых диалогов. Совместим со многими другими наборами инструментов и OSES.
Zlib - TK - Основной набор инструментов виджета. Часть TCL/TK.
TCL - Xforms Toolkit - Toolkit Виджета, разработанный для системы Xwindow.
LGPL-2.1-only - LVGL-встроенный графический интерфейс с простыми в использовании графических элементов, красивыми визуальными эффектами и низким следом памяти.
MIT - Луиджи - библиотека GUI с одним заголовком Barebones для Win32, X11 и Essence.
MIT
Хешинг
Реализации функций хеш для некрипторов . Криптографические хэши можно найти в крипто -сексе.
- CLHASH - Библиотека реализует смехотворно быстрая функция хеширования Clhash. Работает только на Intel Haswell или новее.
Apache-2.0 - Highwayhash - быстрая, сильная, использующая хэш -функция SIMD. Также содержит реализацию Siphash (хотя это медленнее).
Apache-2.0 - Spookyhash - чрезвычайно быстрая хэш -функция.
BSD-3-Clause - T1HA - быстрый положительный хэш - портативная, быстрая хэш -функция.
BSD-3-Clause - XXHASH - чрезвычайно быстрый алгоритм хеширования. Поставляется в 32 и 64-битных сортах.
BSD-2-Clause
Обучение, ссылка и учебные пособия
Ресурсы для обучения программированию C в целом или что -то полезное, касающееся программирования C.
Справочные ресурсы онлайн
- Тесты распределения без блокировки памяти
- C FAQ - COMP.LANG.C Часто задаваемые вопросы
- Сравнение реализаций стандартной библиотеки C/POSIX для Linux
- Проект C89 Стандарт
- Проект C99 Стандарт
- Проект C11 Стандарт
- Поиск лучшего 64-битного моделирования PRNG
- Стандарт кодирования SEI CERT C
- Tinyc.game - Tiny C Games, которые вы можете скомпилировать и запустить прямо сейчас http://tinyc.games
MIT
Ресурсы для начинающих онлайн
- Учебник по указателям
- Учебное пособие по портативным makefiles
- Строительство C Projects
- C Программирование Wikibook
- Введение в «веселье» c
- Обучение C с GDB
- Memcpy vs Memmove
- Учебное пособие по программированию потоков POSIX (немного устаревшего, но большая часть его все еще является действительной и полезной)
- Учебник по программированию GNU C (онлайн pdf)
- Шаблон в c
- Что должен знать программист C о памяти
- CodeForwin: изучить программирование C, учебные пособия по структуре данных и упражнения онлайн
- Учите C: Бесплатный и открытый интерактивный урок C
- Как запрограммировать текстовое приключение в c
Промежуточные ресурсы онлайн
- 8 хитрости GDB, которые вы должны знать
- 10 C99 трюки
- Комплексный учебный ресурс MPI
- Создайте свой собственный текстовый редактор
- Погружение в параллелизм: пробовать мутекс и атомику
- Общий счетный подсчет C
- Как написать портативный C, не усложняя свою сборку
- Введение в OpenMP (видео)
- Учебник OpenMP (для стандарта OpenMP3)
- Учебник MPI
- Масштабируемый C - написание крупномасштабного распределенного c
- Некоторые неизвестные функции или уловки на языке C
- Что каждый программист C должен знать о неопределенном поведении
Расширенные ресурсы онлайн
- Продвинутое метапреграммирование в C
- Быстрое руководство по внедрению и отладке Malloc, Free, Calloc и Realloc
- Несколько взломов
- Внедрение умных указателей для языка программирования C
- Встроенные функции в c
- Метапреграммирование пользовательских структур управления в C
- Решение задачи временного хранения макросов C
- Некоторые темные уголки C
- Написание эффективной оптимизация кода C и C
- Сопровождение алгебраических типов данных в чистом C99
Справочники
- C: Справочное руководство 5E - Полная справочная книга для C99.
- C В двух словах 2E - Краткий справочник для C11.
- C Pocket Research - Краткая справочная книга для C99.
- C -Compraming Language 2e - оригинальная книга по C, его создателями.
Новички книги
- C Primer Plus 6e - Полное руководство по программированию в C11.
- Программирование C: современный подход - отличная книга, чтобы узнать основы C.
- Голова первой C - Книга стиля «голова -первого» для обучения C.
Промежуточные книги
- 21 -й век C - Хорошая вторая книга программирования на C.
- Понимание и использование указателей C - подробный ресурс по указателям в C.
- Zeromq - книга для использования Zeromq с C.
Продвинутые книги
- Программирование эксперта C: Deep C Secrets - интересный, углубленный и интересный взгляд на внутренности C.
- Modern C, третье издание: охватывает стандарт C23 - в современном C, третьем издании, вы научитесь использовать весь потенциал C, используя последние инструменты и методы.
Лексинг и анализ
Библиотеки специально для лексического анализа (или лексига) и синтаксического анализа (или анализа).
- Flex - быстрый генератор лексического анализатора.
BSD-2-Clause - GNU Bison-генератор анализатора общего назначения, который преобразует аннотированную контекстную грамматику в целый ряд анализаторов.
GPL-3.0-or-later - Молоток - комбинаторы анализаторов для бинарных форматов.
GPL-2.0-only - MPC - библиотека комбинатора анализаторов.
BSD-2-Clause - OWL - генератор анализатора для явных языков.
MIT - RE2C - Lexer Generator, производящий быстрые лексеры, с доступом к его внутренним. Общественный достояние.
Управление памятью
Является ли другой, более быстрый Malloc или откровенная коллекция мусора, все, что связано с управлением памятью C, здесь.
- Boehm GC - Сборник мусора для C. Различные лицензии, все с открытым исходным кодом.
- Jemalloc - реализация Malloc, которая подчеркивает избегание фрагментации и масштабируемой поддержки параллелизма.
BSD-2-Clause - Основатель без блокировки - Эффективный распределитель памяти.
GPL-3.0-or-later - libcsptr - умные указатели для C.
MIT - RPMalloc-Кэш-кешкол, быстрый распределитель памяти, естественно выровнен на 32-байтовых границах. Общественный достояние.
- Talloc - иерархическая система пула памяти, связанную с эталонными, с деструкторами.
LGPL-3.0-or-later - TLSF - двухуровневый отдельный распределитель посадки; Общий назначенный динамический распределитель памяти, предназначенный для удовлетворения требований в режиме реального времени. Сообщенная реализация.
BSD-3-Clause
Мультимедиа
- Aubio - Библиотека для анализа звука и музыки.
GPL-3.0-or-later - FFMPEG - Полное, кроссплатформенное решение для записи, преобразования и потоковой передачи аудио и видео.
LGPL-2.1-or-later - GSTREAMER - Framework для аудио и визуальных носителей.
LGPL-2.1-or-later - Libmpv - музыкальная библиотека.
GPL-2.0-or-later - Libsndfile - Библиотека для чтения и написания звуковых файлов. Поддерживает множество форматов.
LGPL-2.1-only или LGPL-3.0-only - Libsounco-Библиотека для кроссплатформенного, аудиовхождения и вывода в реальном времени. Имеет диапазон бэкнов.
MIT - LIBVLC - Полная мультимедийная библиотека для звука и видеокодирования, декодирования, игры и потоковой передачи.
GPL-2.0-only - Lodepng - простой декодер и энкодер PNG, не требующий других зависимостей.
BSD-3-Clause - Minimp3 - Loolweight Mp3 Декодер.
CC0-1.0 - Soundpipe - легкая музыка DSP.
MIT
Сеть и Интернет
Низкоуровневые сетевые и связанные с интернетом. Если вы хотите что-то более полное и высокого уровня, вам может понадобиться раздел веб-фреймворков.
- ASNLC - Компилятор спецификаций ASN.1 в исходный код C.
BSD-2-Clause - CHL - C Hypertext Library - библиотека для написания веб -приложений в C.
GPL-3.0-only - CZMQ - Связывание высокого уровня для ZeromQ.
MPL-2.0 - Dyad.c - легкая, легкая, асинхронная сетевая библиотека.
MIT - GNU ADNS-Advanced, простой в использовании, клиентские библиотеки и утилиты DNS-способности DNS.
GPL-3.0-or-later - Gumbo -Parser - библиотека анализа HTML5 в C99.
Apache-2.0 - H20 - HTTP -сервер нового поколения.
MIT - LLHTTP - HTTP -запрос/анализатор ответа.
MIT - LDNS - Библиотека для упрощения программирования DNS.
BSD-3-Clause - Libcurl - библиотека передачи URL на стороне клиента, поддерживающая широкий спектр форматов.
curl - Libetpan - почтовая библиотека, обеспечивающая эффективную сеть для IMAP, SMTP, POP и NNTP.
BSD-3-Clause - Libev - еще один цикл событий.
BSD-2-Clause - Libevent - Замена цикла событий для сетевых серверов.
BSD-3-Clause - LIBHTTPD - Библиотека для добавления основных возможностей веб -сервера в приложение или встроенное устройство.
GPL-2.0-only - LIBHV - Библиотека петли событий Cross Platform.
BSD-3-Clause - Libidn - реализация спецификаций StringPrep, Punycode и IDNA.
GPL-3.0-or-later - Libmicrohttpd - небольшая библиотека, которая позволяет легко запустить HTTP -сервер как часть другого приложения.
LGPL-2.1-or-later - Libnl -
libnl - это коллекция библиотек для профила API в протокол NetLink (замена для IOCTL). Основное использование - это общение с ядром Linux, для изменения сетевого состояния (интерфейсы, маршрутизация и т. Д.). LGPL-2.1-only - Libonion - HTTP -серверная библиотека, разработанная для того, чтобы быть простым в использовании.
Apache-2.0 - LIBPCAP - API предоставляет различным механизму захвата пакетов ядра.
BSD-3-Clause - Libquickmail - Библиотека, предназначенная для того, чтобы дать разработчикам способ отправить электронную почту из своих приложений. Поддерживает множество получателей/CC/BCC и вложений без ограничений по размеру.
GPL-3.0-or-later - Libsagui - Библиотека для кроссплатформенных серверов HTTP.
LGPL-3.0-or-later - Libuhttpd - очень гибкая, легкая и полностью асинхронная библиотека HTTP -сервера на основе LIBEV и HTTP -Parser для Embedded Linux.
MIT - Libvncserver - кроссплатформенные библиотеки для реализации VNC Server и/или клиентских функций.
GPL-2.0-or-later - Libwebsock-простая в использовании и мощную библиотеку веб-сокетов.
LGPL-3.0-only - LIBZMQ - Core Zeromq Library, высокопроизводительная библиотека асинхронных сообщений, направленная на использование в распределенных или одновременных приложениях. C API (Backend C ++)
GPL-3.0-or-later со статическим исключением связывания - Lwan - Экспериментальный, масштабируемый, высокопроизводительный HTTP -сервер.
GPL-2.0-only - Mongoose - встроенный веб -сервер.
GPL-2.0-only - MQTT -C - портативный клиент MQTT C для встроенных систем и ПК.
MIT - Nanomsg - C Реализация Zeromq.
MIT - NNG - Nanomsg -Next Generation - легкий бесконечный обмен сообщениями.
MIT - OSIP - Реализация SIP без дополнительных зависимостей.
LGPL-2.1-or-later - SILGY - Асинхронный http (S) двигатель для проектов C/C ++.
MIT - Socket99 - C99 Обертка для BSD Sockets API.
ISC - TWITC - Mini Library для взаимодействия с API Twitter OAuth.
MIT - Uriparser - Строго RFC 3986 -совместимая библиотека URI и обработка.
BSD-3-Clause - WSLAY - Библиотека WebSocket. Реализации 13 протокола WebSocket, как описано в RFC 6455.
MIT - Zyre-структура для одноранговых приложений на основе близости.
MPL-2.0
Числовой
- Апофения - библиотека для статистических и научных вычислений.
GPL-2.0-only - ARB - библиотека для произвольной арифметики интервала.
LGPL-2.1-or-later - Атлас - автоматически настроенное линейное программное обеспечение алгебры.
BSD-3-Clause - CLBLAS - Функции BLAS, написанные в OpenCl.
Apache-2.0 - CMATHL - Математическая библиотека с большим разнообразием математических функций с поддержкой Cmake Build. Стремится быть близок к совместимости C89/C90 для портативности.
MIT - Куба - библиотека для многомерной численной интеграции.
LGPL-3.0-only - FFT-C-высокоэффективное преобразование Фурье из FFTPack от NetLib; Завернутый в удобный формат
MIT - FFTW - самое быстрое преобразование Фурье на Западе; Высоко оптимизированная процедура быстрого преобразования Фурье.
GPL-2.0-or-later - Флинт - быстрая библиотека для теории чисел; Библиотека, поддерживающая арифметику с числами, полиномами, сериями мощности и матрицами, среди прочих.
GPL-2.0-or-later - GLPK - GNU Линейный программный комплект; Пакет, предназначенный для решения крупномасштабного линейного программирования, смешанного целочисленного программирования и других связанных проблем.
GPL-3.0-or-later - GMP - GNU Multple Precision Arithmetic Library; a library for arbitrary-precision arithmetic.
GPL-2.0-only or LGPL-3.0-only - GNU MPC - Library for complex number arithmetic.
LGPL-3.0-or-later - GNU MPFR - Library for arbitrary-precision floating-point arithmetic.
LGPL-3.0-or-later - GNU MPRIA - Portable mathematics library for multi-precision rational interval arithmetic.
GPL-3.0-or-later - GSL - The GNU Scientific Library; a sophisticated numerical library.
GPL-3.0-only . - KISS FFT - Simple fast Fourier transform library.
BSD-3-Clause - LAPACKE - Interface to LAPACK.
BSD-3-Clause - LibTomMath - Portable, number-theoretic, multiple-precision integer library. Supports algebra, digit manipulation, modular reductions, and various number-theoretic routines. Public domain.
- LibTomPoly - Polynomial-related maths library. Public domain.
- PARI/GP - Computer algebra system for number theory; includes a compiler to C.
GPL-2.0-or-later - PETSc - Suite of data structures and routines for scalable parallel solution of scientific applications modelled by partial differential equations.
BSD-2-Clause - SCS - Splitting Conic Solver; a numerical optimization package for solving large-scale convex cone problems.
MIT - SLEPc - Library for the solution of large, sparse eigenvalue problems on parallel computers.
LGPL-3.0-only - TomsFastMath - Set of optimized maths operations (in assembly), suitable for cryptographic use. Public domain.
- Yeppp! - Fast, SIMD-optimized mathematical library.
BSD-3-Clause
Profiling
- gperftools - Collection of utilities for measuring and improving performance.
BSD-3-Clause - gprof - Performance analysis tool. Part of GNU binutils.
GPL-3.0-or-later - OProfile - Statistical profiler for Linux. Can profile any code (including the kernel!) with low overhead and without recompilation.
GPL-2.0-only - perf - Linux kernel-based profiler with a lot of functionality.
GPL-2.0-only
PDF
- pdfio - PDFio is a simple C library for reading and writing PDF files.
Apache-2.0
Regex
- Onigmo - Fork of Oniguruma, supporting more advanced regexps.
BSD-2-Clause - Oniguruma - Regex library supporting a wide range of encodings, and incorporating many security-oriented fixes.
BSD-2-Clause - PCRE - Implementation of regexes identical to that of Perl 5.
BSD-3-Clause - SLRE - Super Light Regular Expression library; a small implementation of a subset of Perl regex syntax.
GPL-2.0-only - TRE - POSIX-compliant, feature-full regex library.
BSD-2-Clause
Сериализация
- binn - Binary serialization format, meant to be compact, fast and easy-to-use.
Apache-2.0 - c-capnproto - Implementation of the Cap'n Proto serialization protocol.
MIT - cmp - Implementation of the MessagePack serialization protocol.
MIT - flatcc - FlatBuffers compiler and library.
Apache-2.0 - libavro - Implementation of the Avro data serialization system.
Apache-2.0 - mpack - Another implementation of the MessagePack serialization protocol.
MIT - OPIC - Object Persistence in C; a revolutionary serialization framework, with matching on-disk and in-memory representations.
GPL-3.0-or-later - protobuf-c - Implementation of Google Protocol Buffer.
BSD-2-Clause - tpl - Small binary serialization library.
MIT - xdr - External Data Representation; a standard for data serialization. Standard (no license applicable).
- pbtools - Google Protocol Buffers C source code generator.
MIT
Source Code Collections
Collections of small source code. If you want something big and integrated, check the Frameworks section.
- CCAN - Modelled after Perl's CPAN, this is a big collection of code that does stuff. The full list is here. Various licenses, all open source.
- clib - Something of a package manager. Comes with a bunch of libraries of its own.
MIT - gnulib - Collection of common GNU code. Various licenses, all open source.
- libdjb - Collection of libraries doing various things. (Apparently) public domain.
- mmx - Collection of single-header libraries. Various licenses, all open source.
- par - Bunch of single-file libraries.
MIT - Snippets - Useful code snippets and header-only libraries. Public domain.
- stb - Range of single-file libraries. Public domain.
- tinyheaders - Collection of header-only libraries, primarily oriented toward game development.
Zlib - zpl - C99 cross-platform header-only library with many goodies. [
BSD-3-Clause , Unlicense ][BSD-3-Clause, Unlicense]
Standard Libraries
Implementations of the (standard-mandated) C standard library.
- Bionic - Google's standard library, developed for Android.
BSD-3-Clause - cloudlibc - Standard library based on the concept of capability-based security.
BSD-2-Clause - dietlibc - Standard library designed for the smallest possible binaries.
GPL-2.0-only - glibc - The GNU C Library; an implementation of the standard library.
LGPL-2.1-only . - musl - Standard library, compatible with POSIX 2008 and C11. Designed for static linking.
MIT - PDCLib - The Public Domain C Library. Implements most of C99 and some of C11.
CC0-1.0 - uClibc-ng - Small C library for developing embedded systems.
LGPL-2.1-or-later
Template libraries
- CTL - C CONTAINER TEMPLATE LIBRARY (CTL)
MIT
String Manipulation
- bstring - The Better String Library.
BSD-3-Clause - ICU - International Components for Unicode; a library for Unicode support.
ICU - levenstein.c - Levenstein distance algorithm implementation.
MIT . - libunistring - Library for manipulating Unicode strings.
LGPL-3.0-only - libgiconv - Text conversion library.
LGPL-2.1-only - librope - UTF-8 rope ('heavy' string) library.
MIT - SDS - Simple Dynamic Strings; a library for handling strings in a simpler way, but one that is compatible with normal C string functions. Available via clib.
BSD-2-Clause - stmr.c - Porter Stemmer algorithm implementation.
MIT - str - Yet another string library for C language.
BSD-3-Clause - StringZilla - Up to 10x faster SIMD and SWAR-accelerated string search, sort, hashes, edit distances, alignments, and generators.
Apache-2.0 - utf8.h - Single-header UTF-8 library, designed to mimic C-style string functions. Public domain.
- utf8proc - Library for processing UTF-8 data.
MIT
Structured File Processing
This includes libraries for things like XML, JSON, CSV, and other similar formats.
CSV
- libcsv - Simple, streaming CSV parser.
LGPL-2.1-or-later
JSON
- Jansson - Library for encoding, decoding and manipulating JSON.
MIT - jfes - JSON For Embedded Systems; simple JSON engine without any dependencies.
MIT - jsmn - Minimalistic JSON parser.
MIT - json - Simple, low-memory-use JSON parser.
MIT - json-c - Easily work with JSON in C. Comes with a reference-counted object model, and aims for conformance with RFC 7159.
MIT - json.h - Single-file non-streaming JSON parser.
Unlicense - parson - Two-file, C89-compatible JSON parser.
MIT - WJElement - Advanced JSON manipulation library, with support for JSON Schema.
LGPL-2.0-or-later or LGPL-2.1-or-later or LGPL-3.0-or-later - YAJL - Fast streaming JSON parser library.
ISC
INI
- inih - Small and simple INI file parser, good for embedded systems.
BSD-3-Clause - iniparser - Parser for .ini files.
MIT - libconfini - Yet another INI parser.
GPL-3.0-only - minIni - Small and portable INI parser.
Apache-2.0
Другие
- libbson - BSON utility library.
Apache-2.0 - libcbor: CBOR protocol implementation for C and others.
MIT - libconfuse - Small configuration file parser library.
ISC - libelf - Simple library for parsing ELF files.
MIT - libucl - Universal configuration library parser.
BSD-2-Clause - libxo - Allows an application to generate plain text, XML, JSON and HTML output using a common set of function calls. The application decides at runtime what output style should be produced.
BSD-2-Clause
XML
- Expat - Stream-oriented XML parser. Грань
- libxml2 - Standards-compliant, portable XML parser. Грань
- xml - Simple, low-memory-use XML parser / tokenizer.
MIT
YAML
- libYAML - YAML 1.1 parser and emitter.
MIT
Signal Processing
- libsigrok - signal analysis software suite that supports various device types (such as logic analyzers, oscilloscopes, multimeters, and more). [
GPL ][GPL]
Тестирование
- CHEAT - Simple unit testing framework.
BSD-2-Clause - Check - Unit testing framework.
LGPL-2.1-only - ciut - A modern minimal hassle unit test framework.
MIT - clar - Clear and simple unit testing framework.
MIT - CMock - Mock/stub generator.
MIT - cmocka - Unit testing framework with support for mock objects.
Apache-2.0 - Criterion - KISS, non-intrusive test framework.
MIT - ctest - Yet another unit testing framework.
Apache-2.0 - CUnit - Another unit testing framework.
LGPL-2.1-or-later - greatest - Unit testing library in one file, with no memory allocation.
ISC - minctest - Unit testing microlibrary.
BSD-3-Clause - munit - Small unit testing framework.
MIT - Nala - A test framework for C projects.
MIT - Rexo - Framework for C89/C++ featuring automatic registration of tests and a polished API.
Unlicense - Tau - A Micro Unit testing framework for C/C++ (~1k lines of code). Includes a rich set of assertion macros, supports automatic test registration and can output to multiple formats, like the TAP format or JUnit XML. Supported on Linux, macOS, FreeBSD, and Windows.
MIT - theft - Property-based testing (similar to Quickcheck).
MIT - Unity - Simple unit testing framework.
MIT - utest - Single-header unit testing library.
Unlicense
Text Editor Extensions
While practically any decent programmer's text editor supports C, there are some extensions that make it more pleasant. These are labelled by editor.
- CCompletion - Notepad++ autocompletion plugin. Works with all identifiers recognized by Ctags. This is a download link.
GPL-2.0-or-later - CEDET - Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in.
GPL-3.0-or-later - Flycheck - Modern syntax checking for Emacs. For C, it can use either GCC or Clang as a back-end.
GPL-3.0-or-later - Neomake - Async :make and linting framework for Neovim/Vim.
MIT - Syntastic - Syntax checking and linting for Vim.
WTFPL - YASnippet - Emacs code template system, with C templates for common snippets.
GPL-3.0-or-later - YouCompleteMe - Code completion engine for Vim.
GPL-3.0-only
Инструменты
Useful programs to help you write and debug C code which are not editors, libraries or compilers.
- Artistic Style - Fast and small automatic source code formatter that supports C.
LGPL-3.0-only - address-sanitizer - Fast memory error detector.
Apache-2.0 - bcc - A byte array generator to import binary files directy from C in the spirit of xxd.
ISC - c - Compile and execute C "scripts" in one go on the command line. Also has shebang support.
MIT - c99sh - Run C files using hash-bang.
BSD-2-Clause - cdecl - Online service to translate C declarations into English and vice versa. Public domain.
- cinclude2dot - Graphs include dependencies in a project using Graphviz. GPL-1.0-or-later or
GPL-2.0-or-later or GPL-3.0-or-later - ClangCheck - Static analysis tool, designed to work with Clang.
NCSA - conan.io - Something of a package manager for C.
MIT . - Cppcheck - Static analysis tool. Despite the name, works well with C.
GPL-3.0-or-later - Glade - RAD tool to enable quick development of GTK+ GUIs.
GPL-2.0-only - GMSL - GNU Make Standard Library; a collection of additional functionality for GNU Make.
BSD-3-Clause - GNU Global - Source code tagging tool.
GPL-3.0-only - GPP - General-purpose preprocessor. More versatile than the C preprocessor, but more flexible than m4.
LGPL-3.0-or-later - Highlight - Converts source code to formatted text with nice highlighting.
GPL-3.0-only - include-what-you-use - Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it).
NCSA - incbin - Include binary files in your C/C++ applications with ease
Unlicense - indent - Formats C source code automatically to make it easier to read. Also converts from one style of source to another.
GPL-3.0-or-later - SMACK - Modular software verification toolchain and a self-contained software verifier. Currently only works with programs compiled using Clang.
MIT - unifdef - Removes #ifdef and #if directives with their delimited text without touching any other part of the file.
BSD-3-Clause or BSD-2-Clause
Utilities
A 'catch-all' category for anything that doesn't fit well anywhere else.
- ApeTagLibs - Library for working with APEv2 tags.
MIT - argparse - Command-line argument parsing library, inspired by Python's argparse module.
MIT - attr - Commands for manipulating filesystem extended attributes.
GPL-2.0-or-later - bfd - Library for manipulating binary object files. Part of GNU binutils.
GPL-3.0-or-later - Caffeine - Library for building daemons and services for Linux and FreeBSD systems.
LGPL-2.1-or-later - CException - Implementation of exceptions.
MIT - CommonMark - Implementation of the CommonMark spec.
- cosmopolitan - fast portable static native textmode containers (build C programs for LinuxMacWindows in one go) Variety of licenses, all open source.
- cpu_features - Get CPU features at runtime.
Apache-2.0 . - CRIU - Checkpoint/Restore In Userspace; a software tool (with a C API) for 'freezing' a running application to disk, then restoring it.
GPL-2.0-only or LGPL-2.1-only - D-Bus - Simple way for applications to talk to one another.
AFL-2.1 or GPL-2.0-or-later - Discount - Simple implementation of a Markdown parser.
BSD-3-Clause - dlx - Implementation of Knuth's Algorithm X, with example solvers.
GPL-3.0-or-later - docopt.c - Implementation of a command-line option parser.
MIT - dyncall - Another foreign function interface library.
MIT - GNU FreeIPMI - In-band and out-of-band IPMI implementation.
GPL-3.0-only - GNU gperf - Perfect hash function generator, given a list of strings. Outputs C code.
GPL-3.0-or-later - GNU Libffcall - Collection of libraries for building foreign function interfaces.
GPL-3.0-or-later - Hoedown - Fully standards-compliant, extension-supporting, UTF-8 aware, fast Markdown parser.
MIT - Kitsune - Efficient, general-purpose framework for dynamic software updating.
LGPL-3.0-or-later - libCello - Library introducing higher-level programming to C.
BSD-3-Clause - libcmark - Library for parsing the CommonMark dialect of Markdown.
BSD-2-Clause - libcoap - Implementation of the Constrained Application Protocol.
GPL-2.0-or-later or BSD-2-Clause - libcox - Library which permits cross-platform system calls and standard utilities across different operating systems.
BSD-2-Clause - libffi - Portable foreign-function interface library.
MIT - libgeohash - Pure C implementation of the Geohash algorithm.
BSD-3-Clause - libgit2 - Portable implementation of the Git core methods, provided as a re-entrant linkable library. Custom license.
- libgss - Generic Security Service.
GPL-3.0-or-later - libimobiledevice - Cross-platform protocol library to communicate with iThings.
LGPL-2.1-or-later - libnfc - Platform-independent Near-Field Communication library.
LGPL-3.0-only - libpostal - Library for parsing and normalization of street addresses around the world. Powered by statistical NLP and open geo data.
MIT - libtrading - Implementation of network protocols for communicating with exchanges, dark pools and other trading venues. Supports FIX, FIX/FAST and many proprietary protocols.
BSD-2-Clause - libusb - Provides generic access to USB devices.
LGPL-2.1-or-later - libuv - Cross-platform asynchronous I/O.
MIT - libvldmail - Your friendly email validation library. No external dependencies (not even regexps).
WTFPL - linenoise - Small, self-contained alternative to readline and libedit.
BSD-2-Clause - libXDGdirs - An implementation of XDG Base Directory Specification
MIT - MegaMimes - Library for getting the MIME types of a file.
MIT - ncurses - Coloured terminal UI library.
MIT - netbsd-curses - Simplified and small version of ncurses, with the same interface.
BSD-3-Clause - nope.c - Ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers).
GPL-2.0-only - obj.h - A single-header supports OOP in pure C.
MIT - parg - A single-file reimplementation of
getopt with better defaults. CC0-1.0 - pbc - Protocol buffers library.
MIT - progressbar - Easy-to-use library for displaying text progress bars.
BSD-3-Clause - rabbitmq-c - Client library for RabbitMQ.
MIT - Ragel - DSL for state machines that compiles to C.
GPL-2.0-only - rmw - safe-remove utility for the command line that can purge items from your waste directories after x number of days.
GPL-3.0-or-later - Rogueutil - Cross-platform library for creating text-based user interfaces (TUI)
Apache-2.0 - sort - Collection of sorting routines, which type-specialize at compile-time with a user-defined type.
MIT - termbox - Library for writing text-based interfaces.
MIT - tinyexpr - Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions.
BSD-3-Clause - tm - ⏱ Timer and Timeline Utils for C.
MIT - Tulip Indicators - Library of functions for technical analysis of financial data.
LGPL-3.0-or-later - whereami - One-file library for locating the current executable on the file system.
WTFPL - XLSX I/O - Cross-platform library for reading and writing .xlsx files.
MIT - xlsx_drone - Fast Microsoft Excel's *.xlsx reader.
MIT - zlog - Reliable, pure C logging library.
LGPL-2.1-only - zproto - Protocol framework for ZeroMQ.
MIT - Metalang99 - Full-blown preprocessor metaprogramming.
MIT - Datatype99 - Algebraic data types for C99.
MIT - EasyLogger - An ultra-lightweight, high-performance C/C++ log library.
MIT
Web Frameworks
Comprehensive and integrated solutions for building the next brilliant web application in C.
- Concord - A Discord API wrapper library written in C.
MIT - facil.io - Mini-framework for web applications. Includes a fast HTTP and Websocket server, and also supports custom protocols.
MIT - kcgi - CGI and FastCGI library for C
ISC . - KLone - Fully featured, multi-platform, web application development framework, targeted especially at embedded systems and appliances.
BSD-3-Clause - Kore - Easy-to-use web application framework for writing scalable web APIs in C.
ISC
Windows Environments
Technologies designed to bring Windows into the 21st century with respect to support for C.
- Cygwin - Designed to emulate a POSIX-compatible environment extensively under Windows. Various licenses, all open source.
- MinGW-w64 - Minimalist environment for C development on Windows with 64 bit support. Various licenses, all open source.
- MSYS2 - Minimal SYStem 2; aims to provide support for a POSIX environment on Windows, with a package manager based on Arch Linux's pacman. Packages have individual licenses, otherwise, as MinGW and Cygwin.