1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/awesome-lib-awesome-c

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

awesome-c

Кураторский список полезных ресурсов по C. В этом списке есть только бесплатное программное обеспечение для кода и продавцы, которые не являются злом в отношении физических ресурсов.

ИЩЕМ СОПРОВОДИТЕЛЕЙ: Этот список в настоящее время практически неактивен. Я ищу сопровождающих, которые могут сделать его снова отличным. Подробнее см. в #26, но процесс прост: добавьте или исправьте пару вещей в этом списке, и вы станете участником списка с более чем 850 звёздами.

Ранее этот список вёл @kozross. Он решил перенести список на новую платформу, поэтому я решил создать форк, чтобы мы могли сохранить его на GitHub.

Содержание

Содержание

  • Системы сборки
  • Компиляторы
  • Библиотеки компиляторов
  • Сжатие
  • Криптография
  • Базы данных
  • Глубокое обучение
  • Генерация документации
  • Редакторы
  • Встроенные системы
    • ОСРВ
  • Среды
  • Фреймворки
  • Программирование игр
    • Движки
    • Ресурсы
  • Обобщённое программирование
  • Графика
    • Графические API
  • Графический пользовательский интерфейс
  • Хеширование
  • Обработка изображений
  • JSON
  • Обучение, справочные материалы и учебные пособия
    • Онлайн
      • Справочные материалы
        • Языковые стандарты
      • Для начинающих
      • Средний уровень
      • Продвинутый уровень
      • Самостоятельные курсы
    • Физические
      • Справочные материалы
      • Для начинающих
      • Средний уровень
      • Продвинутый уровень
  • Макросы
  • Распределители памяти
  • Мультимедиа
  • Сетевое взаимодействие и интернет
    • Веб-фреймворки
  • Численные методы
  • Параллельное программирование
  • Парсеры
  • Регулярные выражения
  • Сериализация
  • Коллекции исходного кода
  • Стандартные библиотеки
  • Манипуляции со строками
  • Тестирование
  • Расширения текстовых редакторов
    • Atom
    • Emacs
    • Vim
  • Инструменты
  • Утилиты
  • XML

Системы сборки

Это инструменты для автоматизации сборки и тестирования проектов на C.

Компиляторы

Библиотеки компиляторов

Библиотеки для использования в компиляторах, интерпретаторах и низкоуровневых проектах.

  • yasm — проект модульного ассемблера Yasm. 2-clause BSD.

Сжатие

  • libzip — библиотека C для чтения, создания и изменения zip-архивов. 3-clause BSD.

  • lzo — очень быстрая библиотека сжатия данных. GNU GPL2.1.

  • zlib — массово-шикарная, но деликатно-ненавязчивая библиотека сжатия. 3-clause BSD.

  • bzip2 — патентно-бесплатный компрессор данных высокого качества. 3-clause BSD.

  • lz4 — алгоритм быстрого сжатия.

  • snappy — быстрая библиотека сжатия (реализация на C++, собственные привязки к C).

  • zstd — быстрый алгоритм сжатия в реальном времени [3-clause]. BSD

  • Brotli — универсальный алгоритм сжатия без потерь, основанный на LZ77, кодировании Хаффмана и контекстном моделировании второго порядка. Лицензия MIT.

  • Quicklz — быстрая библиотека сжатия. Лицензия GNU GPL2.1.

  • Pixz (произносится как «пикси») — параллельная индексирующая версия xz. Лицензия 2-clause BSD.

Криптография

  • GnuTLS — библиотека для безопасного обмена данными, реализующая SSL, TLS и DTLS. Лицензия GNU LGPL2.1 или более поздняя.

  • Libgcrypt — универсальная криптографическая библиотека с набором доступных шифров. Лицензия GNU LGPL2.1 (для кода) и GNU GPL2.1 (для руководства и инструментов).

  • OpenSSL — реализация протоколов SSL и TLS, а также включает в себя библиотеку криптографии. Двойная лицензия под OpenSSL License и SSLeay License.

  • libsodium — современная и простая в использовании криптобиблиотека. Лицензия Expat.

  • libtomcrypt — довольно полный, модульный и переносимый криптографический инструментарий. Общественное достояние.

  • mbed TLS — ещё одна реализация криптографии для C. Лицензия Apache 2.0.

  • libressl — модернизированный форк OpenSSL. Различные лицензии.

Базы данных

В этом списке перечислены базы данных и хранилища данных с C API.

  • BerkeleyDB — библиотека высокопроизводительной встроенной базы данных для данных типа «ключ-значение». Лицензия GNU AGPLv3.

  • Hiredis — минималистичный клиентский интерфейс для Redis. Лицензия 3-clause BSD.

  • LMDB — сверхбыстрый и сверхкомпактный встроенный магазин данных типа «ключ-значение». Лицензия OpenLDAP.

  • MariaDB — надёжный, масштабируемый и надёжный SQL-сервер, предназначенный для замены MySQL. Лицензия 3-clause BSD.

  • mongo-c-driver — высокопроизводительный клиентский драйвер для MongoDB. Лицензия Apache 2.0.

  • PostgreSQL — мощная объектно-реляционная система баз данных. Лицензия PostgreSQL.

  • recutils — набор инструментов и библиотека C для доступа к редактируемым человеком текстовым файлам баз данных, называемым recfiles. Лицензия GNU GPL3 или более поздняя.

  • Redis — продвинутый магазин данных «ключ-значение». Лицензия 3-clause BSD.

  • sophia — современная встраиваемая база данных «ключ-значение». FreeBSD.

  • SQLite — автономный, не требующий сервера, транзакционный механизм базы данных SQL с интерфейсом C. Общественное достояние.

  • UnQLite — автономный, не требующий сервера, транзакционный движок NoSQL с интерфейсом C. FreeBSD.

Глубокое обучение

(Здесь текст обрывается.) Darknet — открытая нейросетевая среда, написанная на C и CUDA. Она быстрая, простая в установке и поддерживает вычисления на CPU и GPU.

Генерация документации

  • Cxref — генерирует документацию по программам на языке C в форматах LaTeX, HTML, RTF или SGML. Лицензия GNU GPL2.1.
  • DocOnce — язык разметки с умеренным количеством тегов, который можно использовать для создания документов разных форматов. Лицензия 3-clause BSD.
  • Doxygen — фактически стандартный инструмент для генерации документации по C из аннотированных источников. Может создавать документы разных форматов. Лицензия GNU GPL2.1.
  • GTK-Doc — инструмент для создания документации по C на основе аннотированного кода. Поддерживает Autotools. Лицензия GNU GPL2.1 (для кода) или GNU FDL1.1.

Редакторы

Это специализированные и более продвинутые редакторы типа IDE. Если вам нужен редактор для программирования, посмотрите другие варианты. Кроме того, большинство этих редакторов всё равно поддерживают C.

  • Anjuta DevStudio — IDE от GNOME. Лицензия GNU GPL2.1.
  • Atom — редактируемый текстовый редактор для XXI века. Лицензия MIT.
  • Code::Blocks — расширяемая и настраиваемая IDE для работы с C. Лицензия GNU GPL3.
  • CodeLite — кроссплатформенная IDE. Лицензия GNU GPL2.1.
  • Eclipse — IDE, написанная на Java. Лицензия EPL.
  • Geany — очень маленькая и быстрая IDE. Лицензия GNU GPL2.1 или более поздняя версия.
  • KDevelop — IDE от KDE. Лицензия GNU GPL2.1.
  • Qt Creator — кроссплатформенная IDE, написана на C++ и Qt, часть Qt SDK. Поддерживает модель кода Clang. Лицензия GNU GPL3 с исключением для Qt.
  • Visual Studio Code — переосмысленное редактирование кода. Visual Studio Code.

Встроенные системы

Эти проекты позволяют работать с микроконтроллерами и другими архитектурами с ограниченными ресурсами.

RTOS

Операционная система реального времени (RTOS) предназначена для приложений реального времени, которые обрабатывают данные с низкой задержкой.

  • Amazon FreeRTOS — RTOS для микроконтроллеров, которая упрощает программирование небольших устройств с низким энергопотреблением. Лицензия MIT.
  • ChibiOS — RTOS с полной средой разработки (HAL, драйверы, файлы поддержки и инструменты). Лицензия варьируется.
  • Contiki — подключает недорогие микроконтроллеры с низким энергопотреблением к интернету. Лицензия 3-clause BSD.
  • Zephyr Project — масштабируемая RTOS реального времени, поддерживающая несколько аппаратных архитектур и оптимизированная для устройств с ограниченными ресурсами. Лицензия Apache 2.0.
  • RIOT OS — многопоточная операционная система реального времени, которая поддерживает ряд устройств, обычно встречающихся в интернете вещей. Лицензия LGPL-2.1.

Среды

Этот список содержит технологии, предназначенные для того, чтобы перенести Windows в XXI век. century с точки зрения поддержки C

Фреймворки

В этом разделе представлены большие библиотеки, предоставляющие структуры данных и другие функции, которые можно ожидать от «современной» стандартной библиотеки.

  • APR — Apache Portable Runtime; ещё одна библиотека кроссплатформенных служебных функций. Apache 2.0.
  • C Algorithms — набор распространённых алгоритмов и структур данных для C. ISC.
  • C Macro Collections — только заголовки, макросы, генерируемые, общие и типобезопасные коллекции в C. MIT.
  • CPL — Common Pipeline Library; набор библиотек, предназначенных для создания комплексного, эффективного и надёжного программного инструментария. GNU GPL2.1.
  • EFL — большая коллекция полезных структур данных и функций.
  • GLib — библиотека служебных функций и структур, разработанная для обеспечения переносимости, эффективности и мощности. GNU LGPL2.1.
  • GIO — современный и простой в использовании VFS API. GNU LGPL2.1.
  • GObject — объектно-ориентированная система и модель объектов для C. GNU LGPL2.1.
  • libnih — лёгкая библиотека функций и структур C. GNU GPL2.1.
  • libU — небольшая библиотека основных утилит, включая выделение памяти, манипуляции со строками и ведение журнала. 3-clause BSD.
  • PBL — большая библиотека утилит с различными структурами данных. GNU LGPL2.1 или более поздняя (библиотека) или GNU GPL2.1 или более поздняя (тестовый код).
  • qlibc — простая и мощная библиотека C, предназначенная для замены GLib с акцентом на компактность и лёгкость. qLib license (аналогично FreeBSD).
  • stb — ряд однофайловых библиотек для C. Public Domain.
  • libsrt — безопасная библиотека реального времени для C. 3-clause BSD.

Программирование игр

Движки

Эти примеры представляют собой код для разработки игр на C.

  • Corange — игровой движок на чистом C. FreeBSD.
  • Darkplaces — модифицированная версия движка Quake2. GNU GPL2.1.
  • ioquake3 — движок Quake3, наконец освобождённый. GNU GPL2.1.
  • Orx — портативный, лёгкий, основанный на плагинах, управляемый данными, ориентированный на 2D игровой движок. zlib.
  • Quake — движок Quake. [`GNU

Примечание: в запросе присутствуют ссылки на внешние ресурсы, которые не были включены в ответ. GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)

Ресурсы

Это библиотеки всех видов, которые полезны для программирования игр.

Общее программирование

Графика

Графический пользовательский интерфейс

Это в первую очередь наборы инструментов для создания виджетов.

  • GTK+ — кроссплатформенный набор инструментов для создания виджетов. Лицензия GNU LGPL2.1.
  • IUP — ещё один кроссплатформенный набор инструментов для создания виджетов. Лицензия Expat.
  • Tk — базовый набор инструментов для создания виджетов, часть Tcl/Tk. Лицензия Tcl/Tk.
  • XForms Toolkit — набор инструментов для создания виджетов, разработанный для системы XWindow. Лицензия GNU LGPL2.1.
  • nuklear — библиотека графического интерфейса пользователя ANSI C с одним заголовком. Находится в общественном достоянии.
  • libui — простая и портативная (но не гибкая) библиотека GUI. Лицензия MIT.
  • LCUI — небольшая библиотека C для создания пользовательских интерфейсов с использованием C, XML и CSS. Лицензия MIT.

Хеширование

Все библиотеки, связанные с хешированием, криптографические или нет.

  • jwHash — быстрая реализация хеш-таблицы. Лицензия Apache 2.0.
  • xxHash — чрезвычайно быстрый некриптографический алгоритм хеширования. Лицензия 2-clause BSD.
  • libcrc — многоплатформенная библиотека CRC. Лицензия MIT.
  • murmur — реализация MurMur Hashing на C. Находится в общественном достоянии.
  • t1ha — быстрая библиотека положительных хэшей. Лицензия zlib.

Обработка изображений

  • LibCCV — современная библиотека компьютерного зрения. Лицензия 3-clause BSD.

JSON

  • Jansson — библиотека C для кодирования, декодирования и манипулирования JSON. Лицензия Expat.
  • jsmn — минималистичный парсер JSON. Лицензия Expat.
  • json-c — библиотека для работы с JSON. Лицензия Expat.
  • parson — облегчённая библиотека JSON, написанная на C. Лицензия MIT.
  • WJElement — продвинутая библиотека манипулирования JSON с поддержкой JSON Schema. Лицензии LGPL, любая версия.
  • YAJL — быстрая потоковая библиотека парсера JSON на C. Лицензия ISC.

Обучение, справочные материалы и учебные пособия

Этот список содержит ресурсы для изучения программирования на языке C в целом или что-то полезное, связанное с программированием на C.

Онлайн

Справочные материалы

  • SEI CERT C Coding Standard.
  • C FAQ — comp.lang.c Часто задаваемые вопросы. Сравнение реализаций стандартных библиотек C/POSIX для GNU/Linux

Comparison of C/POSIX standard library implementations for GNU/Linux

Руководство по языку C GNU

GNU C Reference Manual

Заметки Роберта Пайка о программировании на C

Robert Pike's notes on programming in C

Обоснование проекта ANSI C

Draft ANSI C Rationale

Обоснование проекта C99

Draft C99 Rationale

Стандарты языка

Для начинающих

Средний уровень

Продвинутый уровень

Самостоятельные курсы

  • Сертифицированный курс подготовки к языку программирования C C Programming Language Certified Associate preparation course Безопасность как приоритет

  • socket99 — оболочка C99 для API сокетов BSD. ISC.

  • Tox — коммуникационная платформа, предназначенная для замены Skype. GNU GPL3.

  • twitc — мини-библиотека C для взаимодействия с Twitter OAuth API. Expat.

  • librg — библиотека для создания простых и элегантных кроссплатформенных решений клиент-серверных MMO-игр. Apache 2.0.

  • dyad — асинхронная сетевая библиотека. MIT.

  • h2o — оптимизированный высокопроизводительный сервер/библиотека HTTP/1, HTTP/2. MIT.

Веб-фреймворки

  • balde — микрофреймворк для C на основе GLib. GNU LGPLv2.1.
  • onion — библиотека C для создания простых HTTP-серверов и веб-приложений. Apache 2.0.
  • kore — простой в использовании, масштабируемый и безопасный веб-фреймворк приложений для написания веб-API на C.
  • klone — полнофункциональный, мультиплатформенный фреймворк разработки веб-приложений.
  • duda — событийно-ориентированный и высокопроизводительный фреймворк веб-сервисов, написанный на C. Apache 2.0.

Численные методы

  • apophenia — библиотека статистических и научных вычислений. GNU GPL2.1.
  • ATLAS — автоматически настраиваемое программное обеспечение линейной алгебры. 3-clause BSD.
  • BLAS — базовые подпрограммы линейной алгебры; набор процедур, обеспечивающих векторные и матричные операции. Лицензия BLAS.
  • CDFLIB — библиотека с процедурами для оценки кумулятивных функций плотности для различных стандартных распределений вероятностей. Также может вычислить один параметр CDF по другим. (Лицензия не указана).
  • cmathl — чистая математическая библиотека C с большим разнообразием математических функций и поддержкой сборки CMake. Стремится быть близким к C89/C90 для обеспечения переносимости. MIT.
  • Cuba — библиотека многомерного численного интегрирования. GNU LGPLv3.
  • FFTW — самый быстрый в мире алгоритм преобразования Фурье; высокооптимизированная процедура быстрого преобразования Фурье. GNU GPL2.1 или более поздняя версия.
  • FLINT — быстрая библиотека теории чисел; библиотека, поддерживающая арифметику с числами, полиномами, степенными рядами и матрицами. GNU GPL2.1 или более поздняя версия.
  • GLPK — GNU Linear Programming Kit; пакет, предназначенный для решения крупномасштабных задач линейного программирования, смешанного целочисленного программирования и других связанных проблем. GNU GPL3 или более поздняя версия.
  • GMP — GNU Multple Precision Arithmetic Library; библиотека для арифметики произвольной точности. GNU GPL2.1 и GNU LGPLv3.
  • GNU MPC — библиотека для комплексной арифметики. GNU LGPL3 или более поздняя версия. GNU MPFR — библиотека для арифметических операций с плавающей точкой произвольной точности. Распространяется на условиях лицензии GNU LGPL3 или более поздней версии, а также GNU LGPL2.1 или более поздней (до версии 2.4.x) версии.

GNU MPRIA — портативная математическая библиотека для рациональной интервальной арифметики с многозначной точностью. Распространяется под лицензией GNU GPL3 или более поздней версией.

GSL — научная библиотека GNU, сложная численная библиотека. Распространяется по лицензии GNU GPL3.

igraph — библиотека для создания и управления большими графами. Распространяется по лицензии GNU GPL2.

KISS FFT — очень простая библиотека быстрого преобразования Фурье. Распространяется в соответствии с условиями лицензии 3-clause BSD.

LAPACKE — интерфейс C к LAPACK. Распространяется согласно условиям лицензии 3-clause BSD.

PARI/GP — система компьютерной алгебры для теории чисел, включает компилятор на C. Распространяется по лицензии GNU GPL2.1 или более поздней.

PETSc — набор структур данных и процедур для масштабируемого параллельного решения научных приложений, моделируемых дифференциальными уравнениями в частных производных. Распространяется по лицензии FreeBSD.

PROB — библиотека, которая обрабатывает различные дискретные и непрерывные функции плотности вероятности. Распространяется по лицензии GNU LGPL3.

Yeppp! — очень быстрая математическая библиотека, оптимизированная для SIMD. Распространяется в соответствии с лицензией 3-clause BSD.

Параллельное программирование

cchan — небольшая библиотека для конструкций каналов для межпотокового взаимодействия. Находится в общественном достоянии.

ck — примитивы параллелизма, безопасные механизмы восстановления памяти и неблокирующие структуры данных. Распространяется по лицензии FreeBSD.

mill — параллелизм в стиле Go на языке C. Распространяется по лицензии X11.

libdill — структурированный параллелизм на языке C. Распространяется по лицензии X11.

MPICH — ещё одна реализация MPI. Распространяется по лицензии MPICH.

OpenMP — набор прагм C, предназначенных для упрощения распараллеливания кода. Распространяется по лицензии 3-clause BSD.

OpenMPI — реализация интерфейса передачи сообщений. Распространяется по лицензии 3-clause BSD.

pth — переносимая реализация для приоритетного планирования без вытеснения для нескольких потоков выполнения. Распространяется по лицензии GNU GPL3 или более поздней.

pthreads — POSIX-библиотека потоков.

SLEPc — программная библиотека для решения больших разреженных задач на собственные значения на параллельных компьютерах. Распространяется по лицензии GNU LGPL3.

TinyCThread — портативное, небольшое внедрение API потоков C11. Распространяется по лицензии zlib.

Парсеры

hammer — комбинаторы парсеров для двоичных форматов. Распространяются по лицензии GNU GPL2.1.

iniparser — парсер для .ini. Файлы

  • Expat — лицензия Expat.

    • libconfini — ещё один анализатор INI-файлов. Лицензия GNU GPL3 или более поздняя.
    • LibYAML — анализатор и эмиттер YAML 1.1. Лицензия Expat.
    • mpc — библиотека комбинаторов парсеров. Лицензия FreeBSD.
    • libucl — библиотека анализатора универсальной конфигурации. Лицензия FreeBSD.

Регулярные выражения

«Некоторые люди, столкнувшись с проблемой, думают: „Я знаю, я буду использовать регулярные выражения“. Теперь у них две проблемы». — Джейми Завински.

  • PCRE — реализация регулярных выражений, идентичная реализации в Perl 5. Лицензия 3-clause BSD.
  • regexp4 — простая и полная реализация регулярных выражений со своим синтаксисом. Лицензия GNU GPL3 или более поздняя.
  • SLRE — очень маленькая реализация подмножества синтаксиса регулярных выражений Perl. Библиотека суперлёгких регулярных выражений. Лицензия GNU GPL2.1.
  • sregex — невозвратный NFA/DFA-движок библиотеки регулярных выражений на основе Perl. Лицензия 3-clause BSD.
  • TRE — библиотека регулярных выражений, совместимая с POSIX, с полным набором функций. Лицензия FreeBSD.

Сериализация

  • binn — формат двоичной сериализации, предназначенный для компактности, быстроты и простоты использования. Лицензия Apache 2.0.
  • c-capnproto — реализация протокола сериализации Cap'n Proto. Лицензия Expat.
  • cmp — реализация протокола сериализации MessagePack. Лицензия Expat.
  • libavro — C-реализация системы сериализации данных Avro. Лицензия Apache 2.0.
  • mpack — ещё одна реализация протокола сериализации MessagePack. Лицензия Expat.
  • netstring-c — кодировщик и декодер Netstring. Общественное достояние.
  • protobuf-c — реализация Google Protocol Buffer на языке C. Лицензия FreeBSD.
  • xdr — внешнее представление данных; стандарт для сериализации данных.

Также проверьте: JSON, XML.

Коллекции исходного кода

Здесь представлены коллекции небольших исходных кодов. Если вам нужно что-то большое и интегрированное, обратитесь к разделу «Фреймворки».

  • CCAN — большая коллекция кода на C, которая делает разные вещи. Похожа на CPAN для Perl. Полный список здесь.
  • clib — что-то вроде менеджера пакетов для C. Поставляется с кучей собственных библиотек. Лицензия Expat.
  • gnulib — коллекция общего кода GNU.
  • libdjb — коллекция библиотек, выполняющих различные задачи. (По-видимому) общественное достояние.

Стандартные библиотеки

Здесь приведены стандартные библиотеки C. Bionic — стандартная библиотека C, разработанная Google для Android. Лицензия 3-clause BSD.

Dietlibc — стандартная библиотека С, предназначенная для создания наименьших возможных двоичных файлов. Лицензия GNU GPL2.1.

Glibc — библиотека GNU C; реализация стандартной библиотеки C. Лицензия GNU LGPL2.1.

Musl — стандартная библиотека C, совместимая с POSIX 2008 и C11. Предназначена для статического связывания. Лицензия Expat.

Строковые манипуляции

Bstrlib — Better String Library. Лицензии 3-Clause BSD и GNU GPL2.1.

ICU — International Components for Unicode; библиотека поддержки Unicode. Лицензия ICU.

Libunistring — библиотека для работы со строками Unicode на языке C. Лицензия GNU LGPL3.

Libgiconv — библиотека преобразования текста. Лицензия GNU LGPL2.1 (библиотека) или GNU GPL3 (iconv программа).

SDS — Simple Dynamic Strings; библиотека для обработки строк C более простым способом, но совместимым с обычными строковыми функциями C. Доступна через clib. Лицензия FreeBSD.

Shoco — компрессор для небольших текстовых строк. Лицензия Expat.

Smaz — эффективная библиотека сжатия строк. Лицензия 3-Clause BSD.

Utf8.h — однофайловые функции строк utf8. Лицензия Unlicense.

Utf8proc — небольшая и чистая библиотека для обработки данных Unicode в формате UTF-8. Лицензия.

Тестирование

CHEAT — очень простой фреймворк модульного тестирования. Лицензия FreeBSD.

Check — фреймворк для модульного тестирования C. Лицензия GNU LGPL2.1.

CMock — генератор макетов/заглушек для C. Лицензия Expat.

Cmocka — фреймворк модульного тестирования с поддержкой фиктивных объектов. Лицензия Apache 2.0.

Criterion — KISS, неинтрузивный фреймворк тестирования C. Лицензия Expat.

CUnit — ещё один фреймворк модульного тестирования для C. Лицензия GNU LGPL2.0.

Cutest — библиотека модульного тестирования с обнаружением утечек памяти (Linux, freeBSD и Windows). Лицензия GPL2.

Minunit — минимальный фреймворк модульного тестирования для C. Лицензия Expat.

Munit — небольшой, но полнофункциональный фреймворк модульного тестирования для C без зависимостей. Лицензия MIT.

Unity — простой фреймворк модульного тестирования для C. Лицензия Expat. Инструменты для работы с исходным кодом на C

  • GNU GPL3 — инструмент для тегирования исходного кода, который работает с C.

  • Gprof — инструмент анализа производительности. Часть GNU binutils. GNU GPL3 или более поздняя версия.

  • Highlight — преобразует исходный код в форматированный текст с приятной подсветкой. GNU GPL3.

  • Include-what-you-use — помогает найти ненужные включения и предлагает способы их исправления. Основан на LLVM/Clang (работает только с ним). NCSA.

  • Indent — автоматически форматирует исходный код на C, чтобы его было легче читать. Также преобразует один стиль исходного кода в другой. GNU GPLv3 или более поздние версии.

  • RR — отладчик, который записывает недетерминированные выполнения, чтобы обеспечить детерминированную отладку. FreeBSD.

  • Tup — очень быстрая кроссплатформенная система сборки на основе файлов. GNU GPL2.1.

  • Unifdef — удаляет директивы #ifdef и #if вместе с их разграниченным текстом, не затрагивая другие части файла. 3-clause BSD и FreeBSD.

  • Valgrind — набор инструментов динамического анализа, включая средство проверки утечек. GNU GPL2.1.

Утилиты

Это категория «всё подряд» для всего, что не подходит ни к одной из других категорий.

  • ApeTagLibs — библиотека C для работы с тегами APEv2. Expat.

  • BFD — библиотека для управления двоичными объектными файлами. Часть GNU binutils. GNU GPL3 или более поздняя версия.

  • CF4OCL — фреймворк C для OpenCL; кроссплатформенный объектно-ориентированный фреймворк для разработки и тестирования проектов OpenCL. GNU LGPL3 (библиотека) или GNU GPL3 (код проекта).

  • CommonMark — реализация спецификации CommonMark на C. Различные лицензии.

  • CException — реализация исключений на C. Expat.

  • Docopt.c — реализация парсера параметров командной строки на C. Expat.

  • DynCall — ещё одна библиотека интерфейса внешних функций. Expat.

  • FANN — библиотека быстрых искусственных нейронных сетей; реализация нейронных сетей. GNU GPL2.1.

  • Firm — библиотека на C, которая предоставляет промежуточное представление на основе графов, оптимизацию и генерацию ассемблерного кода, подходящего для использования в компиляторах. Поставляется с примером фронтенда на C под той же лицензией. GNU LGPLv2.1.

  • Genann — простая библиотека нейронных сетей на C. Zlib.

  • Gjrand — библиотека процедур генерации случайных чисел. GNU GPL2.1 или GNU GPLv3. FreeIPMI — реализация IPMI внутри и вне диапазона.

GNU gperf — генератор совершенных хеш-функций на основе списка строк. Выводит код на C.

GNU Libffcall — набор библиотек для создания интерфейсов внешних функций.

gperftools — набор утилит для измерения и улучшения производительности.

huffandpuff — минимальный кодировщик и декодировщик Хаффмана.

kdtree — простая библиотека для работы с KD-деревьями.

Kitsune — эффективная универсальная структура для динамического обновления программного обеспечения.

libavl — библиотека, содержащая ряд самобалансирующихся бинарных деревьев.

libbson — служебная библиотека BSON.

libCello — библиотека, представляющая программирование более высокого уровня для C.

libffi — переносимая библиотека интерфейса внешних функций.

libgit2 — чистая реализация Git на языке C.

libimobiledevice — кроссплатформенная протокольная библиотека для взаимодействия с iThings.

libnfc — независимая от платформы библиотека Near-Field Communication.

ncurses — цветная библиотека пользовательского интерфейса терминала.

nope.c — основанная на языке C ультралёгкая программная платформа для масштабируемых серверных и сетевых приложений (подумайте о node.js для программистов на C).

pbc — библиотека протокольных буферов.

rabbitmq-c — клиентская библиотека для RabbitMQ.

Ragel — DSL для конечных автоматов, который компилируется в C.

Tinyexpr — крошечный рекурсивный нисходящий анализатор, компилятор и механизм оценки простых математических выражений.

uthash — реализация хеш-таблицы, позволяющая легко хранить существующие структуры в хеш-таблице. CPU_FEATURES — кроссплатформенная библиотека на C99 для получения характеристик процессора во время выполнения. Лицензия Apache 2.0.

Pblog — небольшая библиотека структурированного логирования с низкими накладными расходами, предназначенная для логирования событий программного обеспечения. Лицензия Apache 2.0.

Libelf — библиотека доступа к объектным файлам ELF на языке C. Лицензия GNU GPL2.1.

MCPP — переносимый препроцессор C. Лицензия 2-clause BSD.

Libusb — общий доступ к USB-устройствам. Лицензия LGPL2.1.

Alsa-lib — пользовательская библиотека для взаимодействия с ALSA. Лицензия LGPL2.1.

Capstone — фреймворк для дизассемблирования и дизассемблера. Лицензия BSD 3-clause.

XML

«XML — это отстой. Действительно. Этому нет оправдания. XML противно разбирать даже людям, а для компьютеров это просто катастрофа. Нет никаких причин для существования этого ужасного отстоя». — Линус Торвальдс.

Expat — потокоориентированный парсер XML. Лицензия Expat.

Libxml2 — совместимый со стандартами, портативный парсер XML. Лицензия Expat.

Mini-xml — маленькая библиотека чтения и записи XML. Не имеет зависимостей, кроме стандартной библиотеки C. Лицензия Apache 2.0 с исключениями.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Продолжая разработку списка awesome-c на GitHub. Развернуть Свернуть
GFDL-1.3
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/awesome-lib-awesome-c.git
git@api.gitlife.ru:oschina-mirror/awesome-lib-awesome-c.git
oschina-mirror
awesome-lib-awesome-c
awesome-lib-awesome-c
master