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

OSCHINA-MIRROR/markhoo-awesome-c-cn

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать

The BSD Zero Clause license goes further than the BSD 2-Clause license to allow you unlimited freedom with the software without requirements to include the copyright notice, license text, or disclaimer in either source or binary forms.

Permissions
  • Commercial use
  • Distribution
  • Modification
  • Private use
Limitations
  • Liability
  • Warranty
Conditions
README.md 61 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 11:46 9154da0

C 语言 ресурсы: полная версия на китайском языке

Я думаю, что многие программисты должны помнить, что на GitHub есть серия Awesome: XXX, которая представляет собой подборку ресурсов. Awesome-C — это список ресурсов по языку C, который поддерживается koz.ross. Он включает в себя такие темы, как системы сборки, компиляторы, базы данных, шифрование, учебники и руководства для средней и старшей школы, библиотеки и т. д.

Серия Awesome хотя и обширна, но в основном содержит лишь краткое введение в ресурсы, которые она собирает. Если бы было более подробное описание на китайском языке, это было бы более полезно для соответствующих разработчиков. Это также является причиной запуска нашего открытого исходного проекта.


Что мы будем делать?

  • На основе списка awesome-c мы проведём компиляцию и систематизацию каждого элемента списка. Кроме того, мы добавим ресурсы из других источников.
  • Систематизированные материалы будут размещены на онлайн-канале ресурсов Bole Online (http://hao.importnew.com/). Вы можете ознакомиться с уже систематизированными материалами: «libPhenom: высокопроизводительная параллельная среда разработки на C, разработанная Facebook» (http://hao.importnew.com/libphenom/).

Как присоединиться к этому проекту?

(Из этого каталога можно увидеть, что объём работы над проектом немалый, поэтому мы очень надеемся, что больше программистов присоединятся к нам.)

Однако перед тем, как присоединиться, есть несколько небольших требований:

  • Хорошее владение английским языком, способность понимать и пересказывать английский своими словами;
  • Опыт работы с языком C.

Если вы заинтересованы, пожалуйста, добавьте QQ: 50872495. При добавлении QQ укажите «C Language Complete». // Это не группа QQ.


Как внести новые ресурсы в список?

Мы приветствуем всех, кто хочет внести высококачественные новые ресурсы. При отправке PR, пожалуйста, следуйте следующим требованиям:

  • Убедитесь, что вы использовали рекомендуемые ресурсы сами;
  • Укажите причину рекомендации при отправке PR.

После получения запроса на PR от списка ресурсов команда будет регулярно (еженедельно) публиковать в Weibo список PR, отправленных за неделю, и выслушивать мнения тех, кто использовал эти ресурсы. После подтверждения они будут добавлены в список ресурсов.

Спасибо за ваш вклад!


Участники проекта

Примечание: список не упорядочен по рангу, периодически обновляется.

      • Или более поздние версии.

[Официальный сайт] (https://gcc.gnu.org/)

Шифрование

  • GnuTLS: безопасная коммуникационная библиотека, реализующая SSL, TLS и DTLS. [GNU GPL2.1] или более поздняя версия. [Официальный сайт] (http://www.gnutls.org/)
  • libgcrypt: универсальная библиотека паролей, поддерживающая различные методы шифрования. [GNU LGPL2.1] (код), [GNU GPL2.1] или более поздняя версия (документация и инструменты). [Официальный сайт] (https://www.gnu.org/software/libgcrypt/)
  • OpenSSL: реализация протокола SSL и TLS, а также библиотека шифрования. [Двойная лицензия под лицензией OpenSSL и лицензией SSLeay]. [Официальный сайт] (https://www.openssl.org/)
  • libsodium: современная, удобная библиотека шифрования. [Expat]. [Официальный сайт] (https://github.com/jedisct1/libsodium)
  • libtomcrypt: довольно полный, модульный и переносимый набор инструментов. Открытый исходный код. [Официальный сайт] (https://github.com/libtom/libtomcrypt)
  • mbed TLS: библиотека шифрования, реализованная на C. [Apache2.0]. [Официальный сайт] (https://tls.mbed.org/)

Базы данных

Далее перечислены базы данных и системы хранения данных на основе C API.

  • BerkeleyDB: высокопроизводительная встроенная база данных ключ-значение. [GNU AGPLv3]. [Официальный сайт] (http://www.oracle.com/us/products/database/berkeley-db/overview/index.html)
  • Hiredis: очень простой клиент Redis. [3-clause BSD]. [Официальный сайт] (https://github.com/redis/hiredis)
  • LMDB: очень быстрая и простая система хранения ключей и значений. [newOpenLDAP]. [Официальный сайт] (http://symas.com/mdb/)
  • MariaDB: мощный, расширяемый и надёжный SQL-сервер, разработанный как замена MySQL. [3-clause BSD]. [Официальный сайт] (https://mariadb.com/)
  • mongo-c-driver: высокопроизводительный клиент MongoDB. [Apache2.0]. [Официальный сайт] (https://github.com/mongodb/mongo-c-driver)
  • PostgreSQL: мощная объектно-реляционная база данных. [Лицензия PostgreSQL]. [Официальный сайт] (http://www.postgresql.org/)
  • recutils: набор инструментов и библиотек C для доступа к редактируемым текстовым базам данных в формате recfiles. [GNU GPL3] или более поздняя версия. [Официальный сайт] (https://www.gnu.org/software/recutils/)
  • Redis: продвинутая система хранения ключ-значение. [3-clause BSD]. [Официальный сайт] (http://redis.io/)
  • sophia: современная встраиваемая база данных ключ-значение. [FreeBSD]. [Официальный сайт] (https://github.com/pmwkaa/sophia)
  • SQLite: автономная, безсерверная, нулевая конфигурация, транзакционная SQL-база данных с поддержкой C-интерфейса. Открытый исходный код. [Официальный сайт] (http://www.sqlite.org/)
  • UnQLite: автономная, безсерверная, нулевая конфигурация, транзакционная NoSQL-база данных с поддержкой C-интерфейса. [FreeBSD]. [Официальный сайт] (http://unqlite.org/)

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

  • Cxref: генерирует документацию для программ на C, поддерживает форматы LaTeX, HTML, RTF или SGML. [GPL2.1]. [Официальный сайт] (http://www.gedanken.org.uk/software/cxref/)
  • DocOnce: простой язык разметки, используемый для создания документации в различных форматах. [BSD-3clause]. [Официальный сайт] (https://hplgit.github.io/doconce/doc/web/index.html)
  • Doxygen: фактический стандарт для генерации документации из комментариев в коде на C. Может создавать документацию в различных форматах. [GNU GPL2.1]. [Официальный сайт] (http://www.stack.nl/~dimitri/doxygen/index.html)
  • GTK-Doc: инструмент для создания документации по коду на C с комментариями, поддерживает Autotools [GNU GPL2.1] (код) и [GNU FDL1.1]. [Официальный сайт] (http://www.gtk.org/gtk-doc/)

Редакторы

Это особенно изысканные IDE-редакторы. Если вы ищете редактор программиста, посмотрите в другом месте. Кроме того, независимо от того, какой редактор вы выберете, он поддерживает C.

  • Anjuta DevStudio: IDE GNOME. [GNU GPL2.1]. [Официальный сайт] (http://anjuta.org/)
  • Code::Blocks: расширяемая, настраиваемая IDE, поддерживающая C. [GNU GPL3]. [Официальный сайт] (http://www.codeblocks.org/)
  • CodeLite: кроссплатформенная IDE. [GNU GPL2.1]. [Официальный сайт] (http://www.codelite.org/)
  • Eclipse: IDE, написанная на Java. [EPL]. [Официальный сайт] (http://www.eclipse.org/ide/)
  • Geany: маленькая и быстрая IDE. [GNU GPL2.1 (GNU General Public License, версия 2.1)

KDevelop: интегрированная среда разработки (IDE) от KDE. GPL2.1. Официальный сайт: https://www.kdevelop.org/.

CLion: кроссплатформенная IDE для разработки на C и C++. Разработана JetBrains. GPL2.1. Официальный сайт: https://www.jetbrains.com/clion/.

Среды

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

  • Cygwin: среда, предназначенная для эмуляции POSIX-совместимой среды в Windows. Различные лицензии, все бесплатные. Официальный сайт: https://cygwin.com/.
  • MinGW-w64: упрощённая среда для разработки на языке C под Windows с поддержкой 64-битных систем. Различные лицензии, все бесплатные. Официальный сайт: http://mingw-w64.yaxm.org/doku.php/start.

Фреймворки

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

  • APR: Apache Portable Runtime — ещё одна кроссплатформенная библиотека функций общего назначения. Лицензия Apache 2.0. Официальный сайт: http://apr.apache.org/.
  • C Algorithms: набор часто используемых алгоритмов и структур данных. Официальный сайт: https://github.com/fragglet/c-algorithms.
  • CPL: The Common Pipeline Library — серия подробных, эффективных и надёжных программных инструментов. GPL2.1. Официальный сайт: http://www.eso.org/sci/software/cpl/.
  • EFL: большая коллекция полезных структур данных и функций. Многочисленные лицензии, полностью бесплатные. Официальный сайт: https://www.enlightenment.org/p.php?p=about/efl.
  • GLib: компактная, эффективная и мощная библиотека функций и структур данных общего назначения. LGPL2.1. Официальный сайт: https://wiki.gnome.org/Projects/GLib.
  • GIO: современный и удобный API виртуальной файловой системы (VFS). LGPL2.1. Официальный сайт: https://developer.gnome.org/gio/.
  • GObject: объектно-ориентированная система и модель объектов для языка C. LGPL2.1. Официальный сайт: https://developer.gnome.org/gobject/stable/.
  • libnih: лёгкая библиотека функций и структур данных для языка C. GPL2.1. Официальный сайт: https://github.com/keybuk/libnih.
  • libU: миниатюрная библиотека, предоставляющая основные функции, включая распределение памяти, обработку строк и ведение журнала. Официальный сайт: http://www.koanlogic.com/libu/.
  • PBL: крупная библиотека, включающая функции общего назначения, специализированные структуры данных и т. д. LGPL2.1 для библиотеки и GPL2.1 для тестового кода. Официальный сайт: http://www.mission-base.com/peter/source/.
  • qlibc: простая и мощная библиотека C, которая может служить альтернативой Glib, если требуется небольшая и лёгкая библиотека. Лицензия qLib (похожа на лицензию FreeBSD). Официальный сайт: https://github.com/wolkykim/qlibc.
  • stb: серия однофайловых библиотек C. В открытом доступе. Официальный сайт: https://github.com/nothings/stb.
  • libcstl: стандартная библиотека общих структур данных и алгоритмов для языка C. Официальный сайт: http://libcstl.org/.

Игровое программирование

Движки

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

  • Corange: игровой движок на чистом C. Лицензия FreeBSD. Официальный сайт: https://github.com/orangeduck/Corange.
  • Darkplaces: модифицированная версия движка Quake2. GPL2.1. Официальный сайт: https://icculus.org/twilight/darkplaces/.
  • ioquake3: движок Quake3, наконец-то бесплатный! GPL2.1. Официальный сайт: https://github.com/ioquake/ioq3.
  • Orx: портативный, лёгкий, расширяемый, управляемый данными и ориентированный на 2D игровой движок. Лицензия zlib. Официальный сайт: https://bitbucket.org/orx/orx.
  • Quake2: движок Quake2. GPL2.1. Официальный сайт: https://github.com/id-Software/Quake-2.
  • Spearmint: движок, разработанный для шутеров от первого лица (FPS). Лицензия GPL3 и более поздние версии. Официальный сайт: https://github.com/zturtleman/spearmint.

Ресурсы

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

  • Allegro: кроссплатформенный мультимедийный фреймворк для разработки видеоигр. Лицензия zlib. Официальный сайт: http://liballeg.org.
  • Chipmunk2D: быстрый и лёгкий 2D физический движок для игр. Лицензия Expat. Официальный сайт: https://github.com/slembcke/Chipmunk2D.
  • CSFML: оболочка C для SFML. Лицензия zlib. Официальный сайт: http://www.sfml-dev.org/download/csfml/.
  • FreeGLUT: альтернативный набор инструментов OpenGL. Позволяет создавать и управлять окнами с помощью контекста OpenGL. Лицензия X11. Официальный сайт: https://github.com/dcnieho/FreeGLUT.
  • GLFW: многоплатформенная библиотека для создания окон с использованием контекста OpenGL. Лицензия zlib. Официальный сайт: http://www.glfw.org/. libao: кроссплатформенная аудиобиблиотека с различными выходами. Поддерживается версиями GNU GPL2.1 и выше. Официальный сайт: https://github.com/timonwong/libao.

RetroArch: фронт-энд библиотеки libretro. Поддерживается версией GNU GPL3. Официальный сайт: https://github.com/libretro/RetroArch.

SDL: кроссплатформенный набор инструментов, предоставляющий низкоуровневый доступ к аудио, клавиатуре, мыши, джойстику и графическому оборудованию через OpenGL. Поддерживается лицензией zlib. Официальный сайт: https://www.libsdl.org/.

SDL2: обновлённая версия SDL. Кроссплатформенный набор инструментов, предоставляющий низкоуровневый доступ к аудио, клавиатуре, мыши, джойстику и графическому оборудованию через OpenGL. Поддерживается лицензией zlib. Официальный сайт: https://www.libsdl.org/.

klib: небольшой и лёгкий набор реализаций часто используемых алгоритмов и структур данных. Поддерживается лицензией Expat. Официальный сайт: https://github.com/attractivechaos/klib.

Cairo: 2D библиотека изображений. Поддерживается лицензиями GNU LGPL2.1 или MPLv1.1. Официальный сайт: http://cairographics.org/.

Cogl: графический API для GPU. Зависит от лицензии Expat (использование разрешено на условиях лицензии 3-clause BSD), библиотека использует лицензию LGPLv2.1. Официальный сайт: https://github.com/rib/cogl-web/wiki.

Clutter: библиотека пользовательского интерфейса на основе OpenGL. Поддерживается лицензией GNU LGPL2.1. Официальный сайт: https://blogs.gnome.org/clutter/get-it/.

heman: мини-набор инструментов для работы с изображениями, включая обработку карт высот, карт нормалей и карт расстояний. Поддерживается лицензией Expat. Официальный сайт: https://github.com/prideout/heman.

libcaca: ASCII рендерер на основе терминала. Поддерживается лицензией WTFPLv2. Официальный сайт: https://github.com/cacalabs/libcaca.

libimagequant: небольшая и лёгкая библиотека для преобразования высококачественных RGBA изображений в 8-битные пиксельные изображения. Поддерживается лицензией FreeBSD. Официальный сайт: https://pngquant.org/lib/.

libjpeg-turbo: более быстрая библиотека для чтения и записи файлов JPEG. Поддерживается различными лицензиями. Официальный сайт: http://libjpeg-turbo.virtualgl.org/.

libpng: официальная библиотека PNG. Поддерживается собственной лицензией libpng. Официальный сайт: https://http://www.libpng.org/.

libxmi: библиотека функций для растровой графики. Поддерживается лицензией GNU GPL3 или более поздней версией. Официальный сайт: https://gnu.org/software/libxmi/.

mozjpeg: кодировщик, улучшающий качество JPEG-изображений. Поддерживается лицензией 3-clause BSD. Официальный сайт: https://github.com/mozilla/mozjpeg.

OpenGL: высокопроизводительный стандарт для графики, предоставляющий нативные привязки на языке C. Поддерживается различными лицензиями. Официальный сайт: https://www.opengl.org/.

Craft: простая копия Minecraft, написанная с использованием OpenGL и языка C. Поддерживается лицензией Craft. Официальный сайт: http://hao.importnew.com/craft/, GitHub: https://github.com/fogleman/Craft.

GTK+: кроссплатформенный инструментарий для создания графического интерфейса пользователя. Поддерживается лицензией GNU LGPL2.1. Официальный сайт: http://www.gtk.org/.

IUP: ещё один кроссплатформенный инструментарий для создания графического интерфейса пользователя. Поддерживается лицензией Expat. Официальный сайт: http://webserver2.tecgraf.puc-rio.br/iup/.

Tk: базовый инструментарий для создания графического интерфейса, часть Tcl/Tk. Поддерживается лицензией Tcl/Tk License. Официальный сайт: http://www.tcl.tk/.

XForms Toolkit: инструментарий для создания графического интерфейса для XWindow. Поддерживается лицензией GNU LGPL2.1. Официальный сайт: http://xforms-toolkit.org/.

Jansson: библиотека на C для кодирования, декодирования и обработки JSON. Поддерживается лицензией Expat. Официальный сайт: http://www.digip.org/jansson/.

jsmn: минималистичный анализатор JSON. Поддерживается лицензией Expat. Официальный сайт: http://zserge.com/jsmn.html.

json-c: библиотека для обработки JSON. Поддерживается лицензией Expat. Официальный сайт: https://github.com/json-c/json-c/wiki.

WJElement: продвинутая библиотека для обработки JSON, поддерживает JSON Schema. Поддерживается любой версией LGPL. Официальный сайт: https://github.com/netmail-open/wjelement/.

YAJL: быстрый анализатор потоков JSON на C. Поддерживается лицензией ISC. Официальный сайт: https://lloyd.github.io/yajl/.

Изучение, справочные материалы и руководства

Онлайн

  • SEI CERT C Coding Standard: стандарты кодирования для обеспечения безопасности программного обеспечения на C.

  • C FAQ: сборник часто задаваемых вопросов по языку программирования C.

  • GNU/Linux C/POSIX: ресурсы для изучения C и POSIX в среде GNU/Linux. Стандартизированные библиотеки: сравнение

  • C11 стандарт (черновик): http://www.open-std.org/JTC1/SC22/WG14/

  • Руководство по GNU C: https://www.gnu.org/software/gnu-c-manual/

  • Заметки о C от Роберта Пайка: http://kamalatta.ddnss.de/otherdocs/pikestyle.html

Начальный уровень

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

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

Самоучители

Книги

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

Начальный уровень

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

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

  • Экспертное программирование на C: глубокие секреты C: http://dl.acm.org/citation.cfm?id=179241 — книга, анализирующая внутреннюю структуру C с интересной, глубокой и развлекательной точки зрения. Lodepng — это простой декодер и кодер PNG-изображений, не требующий других зависимостей. Лицензия: 3-clause BSD.

Asnlc — компилятор ASN.1 в C-код. Лицензия: FreeBSD.

Czmq — высокоуровневая привязка к ZeroMQ.

GNU Adns — продвинутый, удобный, асинхронный DNS-клиент и набор утилит. Лицензия: GNU GPL3 и более поздние версии.

GNU Sasl — простая реализация аутентификации и безопасности, а также некоторых распространённых механизмов SASL. Лицензия: GNU GPL3 и более поздние версии.

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

Gumbo-parser — парсер HTML5 на C99. Лицензия: Apache2.0.

Http-parser — анализатор HTTP-запросов и ответов. Лицензия: Expat.

Ldns — упрощённая библиотека для программирования DNS. Лицензия: 3-Clause BSD.

Libcurl — клиентская библиотека URL-преобразования, поддерживающая множество форматов. Лицензия: curl license.

LibEtPan — почтовый клиент, поддерживающий IMAP, SMTP, POP и NNTP. Лицензия: 3-Clause BSD.

Libev — событийно-ориентированная библиотека. Лицензия: FreeBSD.

Libevent — альтернатива библиотеке libev для сетевых серверов. Лицензия: 3-Clause BSD.

Libgss — универсальная служба безопасности. Лицензия: GNU GPL3 или более поздняя версия.

Libhttpd — библиотека, добавляющая базовые веб-серверные функции приложениям или встраиваемым устройствам. Лицензия: GNU GPL2.

Libhv — китайская сетевая библиотека, более удобная в использовании по сравнению с libevent и libuv. Лицензия: 3-Clause BSD.

Libidn — реализация Stringprep, Punycode и IDNA. Лицензия: GNU GPL3 или более поздняя версия.

Libmicrohttpd — мини-библиотека, которая упрощает запуск HTTP-сервера как части другого приложения. Лицензия: GNU LGPL2.1 или более поздняя версия.

Libsoup — GNOME HTTP-клиент/серверная библиотека, использующая GObject. Лицензия: GNU LGPL2.1.

Lwan — экспериментальный, расширяемый и высокопроизводительный HTTP-сервер. Лицензия: GNU GPL2.1.

Mongoose — встроенный веб-сервер на основе C. Лицензия: GNU GPL2.1.

Nanomsg — реализация ZeroMQ на C. Лицензия: Expat.

Onion — лёгкая в использовании библиотека HTTP-серверов. Лицензия: Apache2.0.

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

Osip — SIO на C без дополнительных зависимостей. Лицензия: GNU LGPLv2.1 или более поздняя версия.

S2n — реализация TLS/SSL на C99, простая, быстрая и безопасная. Лицензия: Apache2.0.

Socket99 — оболочка для BSD-сокет API на C99. Лицензия: ISC. GPL3

twitc: библиотека для взаимодействия с Twitter OAuth API.

Expat: лицензия.

Сайт: https://github.com/irungentoo/toxcore


Web-фреймворки

balde: микрофреймворк на основе GLib.

LGPLv2.1: лицензия.

Сайт: https://github.com/balde/balde


Числовые вычисления

apophenia: библиотека для статистики и научных вычислений.

GPL2.1: лицензия.

Сайт: https://github.com/b-k/apophenia


И так далее.

В запросе нет информации, которая могла бы помочь определить основной язык текста. Поэтому перевод выполнен на русский язык без учёта специфики исходного языка. GPL3 (http://www.gnu.org/licenses/gpl.html) или более высокая версия.

pthreads: POSIX-библиотека потоков. Стандарт (без применимой лицензии). (https://en.wikipedia.org/wiki/POSIX_Threads)

SLEPc: библиотека программного обеспечения для решения больших разреженных задач на собственные значения в параллельных компьютерах. GNU LGPL3 (http://www.gnu.org/licenses/lgpl.html). (http://slepc.upv.es/)

TinyCThread: расширяемая, компактная реализация стандартного API C11-потока. zlib (http://directory.fsf.org/wiki/License:Zlib). (https://tinycthread.github.io/)

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

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

PCRE: реализация, полностью совместимая с регулярными выражениями Perl. 3-clause BSD (http://directory.fsf.org/wiki/License:BSD_3Clause). (http://www.pcre.org/)

SLRE: Super Light Regular Expression library; миниатюрная реализация синтаксиса регулярных выражений Perl. GNU GPL2.1 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). (https://github.com/cesanta/slre)

TRE: библиотека регулярных выражений, совместимая с POSIX и богатая функциями. FreeBSD (http://directory.fsf.org/wiki?title=License:FreeBSD "License:FreeBSD"). (https://github.com/laurikari/tre/)

О регулярных выражениях — хорошая статья от deerchao: «Регулярные выражения за 30 минут»

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

c-capnproto: реализация Cap'n Proto протокола сериализации. Expat (http://directory.fsf.org/wiki/License:Expat). (https://github.com/jmckaskill/c-capnproto)

cmp: реализация протокола сериализации MessagePack. Expat (http://directory.fsf.org/wiki/License:Expat). (https://github.com/camgunz/cmp)

libavro: C-реализация Avro системы данных сериализации. Apache2.0 (http://directory.fsf.org/wiki/License:Apache2.0). (http://avro.apache.org/docs/current/api/c/index.html#_introduction_to_avro_c)

mpack: ещё одна реализация протокола сериализации MessagePack. Expat (http://directory.fsf.org/wiki/License:Expat). (https://github.com/ludocode/mpack)

protobuf-c: C-реализация Google Protocol Buffer. FreeBSD (http://directory.fsf.org/wiki?title=License:FreeBSD "License:FreeBSD"). (https://github.com/protobuf-c/protobuf-c)

xdr: External Data Representation; стандарт сериализации данных. Стандарт (нет доступной лицензии). (https://en.wikipedia.org/wiki/External_Data_Representation)

Сборники исходного кода

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

CCAN: имитация CPAN Perl, это большая коллекция полезного кода C. Полный список здесь. Различные лицензии (все бесплатные программы). (http://ccodearchive.net/)

clib: менеджер пакетов C, оснащённый множеством собственных библиотек. Expat (http://directory.fsf.org/wiki/License:Expat). (https://github.com/clibs/clib)

gnulib: коллекция универсального кода GNU. Различные лицензии, все бесплатные. (https://www.gnu.org/software/gnulib/)

libdjb: набор библиотек для различных целей. (Очевидно) общественное достояние. (http://www.fefe.de/djb/)

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

Ниже приведены стандартные библиотеки C.

Bionic: C стандартная библиотека, разработанная Google для Android. 3-clause BSD (http://directory.fsf.org/wiki/License:BSD_3Clause). (https://github.com/android/platform_bionic)

dietlibc: стандартная C библиотека, возможно, самая маленькая бинарная. GNU GPL2.1 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). (http://www.fefe.de/dietlibc/)

glibc: GNU C библиотека. Реализация стандартной C библиотеки. GNU LGPL2.1 (http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html). (http://www.gnu.org/software/libc/)

musl: стандартная C библиотека, совместима с POSIX 2008 и C11, предназначена для статической компоновки. Expat (http://directory.fsf.org/wiki/License:Expat). (http://www.musl-libc.org/)

Обработка строк

bstrlib: лучшая библиотека обработки строк. Двойное лицензирование, 3-clause BSD или GNU GPL2.1. (http://bstring.sourceforge.net/)

ICU: International Components for Unicode; библиотека с поддержкой Unicode. Лицензия ICU (http://source.icu-project.org/repos/icu/icu/trunk/license.html). (http://site.icu-project.org/)

libunistring: C библиотека для работы со строками Unicode. GNU LGPL3 (http://www.gnu.org/licenses/lgpl.html). (https://gnu.org/software/libunistring/)

libgiconv: библиотека преобразования текста. GNU LGPL2.1 (библиотека), GNU GPL3 (программа кодирования). (https://gnu.org/software/libiconv/)

SDS: Simple Dynamic Strings; библиотека для простой обработки C строк и совместимости со стандартными C строковыми функциями. Можно использовать через clib. FreeBSD (http://directory.fsf.org/wiki?title=License:FreeBSD "License:FreeBSD") (https://github.com/antirez/sds) шоко: небольшой текстовый компрессор.

смаз: эффективная библиотека сжатия строк.

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

  • CHEAT: простой фреймворк для модульного тестирования.
  • Check: фреймворк на C для модульного тестирования, лицензия GNU LGPL2.1.
  • CMock: генератор mock/stub на C.
  • cmocka: фреймворк с поддержкой mock объектов для модульного тестирования, Apache2.0.
  • Criterion: KISS-стиль, неинтрузивный фреймворк для тестирования кода на C, Expat.
  • CUnit: ещё один фреймворк для модульного тестирования на C, GNU LGPL2.0.
  • minunit: компактный фреймворк модульного тестирования для C, Expat.
  • Unity: простой фреймворк для модульных тестов на C, Expat.

Расширения для текстовых редакторов

Emacs
  • CEDET: Collection of Emacs Development Environment Tools, встроенный в Emacs, GNU GPL3 или более поздняя версия.
  • Flycheck: современный синтаксический анализатор, для C использует GCC или Clang, GNU GPL3 или более поздняя версия.
  • Yasnippet: система шаблонов, поддерживает общие фрагменты кода для C, GNU GPL3 или более поздняя версия.
Vim
  • Syntastic: проверка синтаксиса и анализ языка, Do What The Fuck You Want To license.
  • YouCompleteMe: движок для дополнения кода в Vim, GNU GPL3.

Инструменты

Ниже приведён список полезных программ, включая библиотеки и компиляторы, которые помогают писать и отлаживать код на C, но не включают редакторы.

  • adlint: статический анализатор с полной поддержкой стандарта C89 и частичной поддержкой C99, GNU GPL3 или более поздняя версия.

  • Artistic Style: быстрый автоматизированный инструмент для форматирования кода на C, GNU LGPL3.

  • address-sanitizer: быстрый детектор ошибок памяти, Apache2.0.

  • biicode: современный менеджер зависимостей для C, Expat.

  • c: компилирует и выполняет C-скрипты из командной строки, также поддерживает shebang, Expat.

  • c99sh: запускает файлы C с помощью hash-bang, FreeBSD.

  • CBMC: C Bounded Model Checker, проверяет границы массивов, безопасность указателей и пользовательские утверждения, Original BSD.

  • cdecl: онлайн-сервис для перевода объявлений C на английский язык и наоборот, общественное достояние.

  • cinclude2dot: включает зависимости в изображения Graphviz в проектах C, GNU GPL (в соответствии с требованиями файла).

  • Complexity: измеряет сложность кода на C, GNU GPL3 или более поздняя версия.

  • DDD: графический интерфейс для различных командных отладчиков, GNU GPL3 или более поздняя версия.

  • fab: оптимизирует процесс сборки, GNU GPL3.

  • GDB: отладчик проекта GNU, GNU GPL3 или более поздняя версия.

  • Glade: RAD-инструмент для ускорения разработки графических интерфейсов на TK+, GNU LGPL. GPL2.1

  • GMSL: GNU Make Standard Library; набор дополнительных функций для GNU Make. 3-clause BSD.

  • GNU Global: инструмент для работы с исходным кодом на C. GNU GPL3.

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

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

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

  • indent: автоматически форматирует код на C, делая его более читаемым. Также может преобразовывать один стиль кода в другой. GNU GPL3 или более поздняя версия.

  • Make: инструмент для управления созданием исполняемых файлов и других не кодовых файлов. GNU GPL3 или более поздняя версия (связан с реализацией GNU).

  • qo: система сборки без отдельных конфигурационных файлов. Expat.

  • rr: отладчик, который записывает неопределённое выполнение для обеспечения детерминированной отладки. FreeBSD.

  • tup: быстрая, платформонезависимая система сборки, основанная на файлах. GNU GPL2.1.

  • unifdef: удаляет текст, включенный с помощью директив #ifdef и #if, не изменяя другие части файла. 3-clause BSD и FreeBSD.

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

Другие инструменты

Ниже представлен всеобъемлющий список, включающий вещи, которые не подходят для других категорий.

  • ApeTagLibs: библиотека тегов APEv2 на C. Expat.

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

  • ccv: современная библиотека компьютерного зрения на языке C с кэшированием. 3-clause BSD.

  • cf4ocl: The C Framework for OpenCL; кроссплатформенный объектно-ориентированный фреймворк для разработки и тестирования проектов на основе OpenCL. GNU LGPL3 (библиотека), GNU GPL3 (другой код).

  • CommonMark: реализация стандарта CommonMark на C. Разнообразные лицензии, все бесплатные.

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

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

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

  • FANN: Fast Artifical Neural Network library; реализация нейронной сети. GNU GPL2.1.

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

  • gjrand: библиотека процедур генерации случайных чисел. GNU GPL2.1 или GNU GPLv3 (на выбор пользователя).

  • GNU FreeIPMI: реализация IPMI с внутренним и внешним доступом. GNU GPL3.

  • GNU gperf: идеальный генератор хеш-функций, предоставляющий ряд строк. Выводит код на C. GNU GPL3 или более поздняя версия.

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

[Официальный сайт]

  • gperftools: набор полезных инструментов для измерения и улучшения производительности. [3-clause BSD]. [Официальный сайт].
  • hammer: анализатор двоичных форматов. [GPL2.1]. [Официальный сайт].
  • Hans Boehm GC: сборщик мусора для языка C. Если вы используете его, не обращайте внимания на лицензию. Полностью бесплатный с различными лицензиями. [Официальный сайт].
  • huffandpuff: очень маленький кодировщик и декодировщик Хаффмана в открытом доступе. [Официальный сайт].
  • iniparser: парсер файлов .ini. [Expat]. [Официальный сайт].
  • jemalloc: реализация malloc, которая фокусируется на предотвращении ошибок сегментации и расширяемой параллельной поддержке. [FreeBSD]. [Официальный сайт].
  • jwHash: быстрая реализация хеш-таблицы. [Apache2.0]. [Официальный сайт].
  • kdtree: простая библиотека KD-деревьев. [3-clause BSD]. [Официальный сайт].
  • Kitsune: эффективный и универсальный фреймворк для динамического обновления программного обеспечения. [GNU LGPL3] или более поздняя версия. [Официальный сайт].
  • libavl: библиотека, включающая различные самобалансирующиеся бинарные деревья. [GNU GPL3] или более поздняя версия. [Официальный сайт].
  • libbson: практическая библиотека BSON. [Apache2.0]. [Официальный сайт].
  • libCello: введение высокоуровневых языков в библиотеку для C. [Официальный сайт].
  • libcox: библиотека для выполнения системных вызовов и стандартных инструментов на разных платформах. [FreeBSD]. [Официальный сайт].
  • libffi: облегчённая библиотека интерфейса внешних функций. [Expat]. [Официальный сайт].
  • libgit2: чистая реализация Git на C. [GNU GPL2 только с исключением связывания], [официальный сайт].
  • libimobiledevice: кроссплатформенный протокол для взаимодействия с iThings. [GNU LGPLv2.1] или более поздние версии (библиотека), [GNU GPL2.1] или более поздние версии (инструменты). [Официальный сайт].
  • libmpv: музыкальная библиотека. Чтобы избежать создания музыкального проигрывателя, при компиляции используйте ./waf configure --disable-cplayer --enable-libmpv-shared. [GNU GPL2.1] или более поздняя версия. [Официальный сайт].
  • libnfc: независимая от платформы библиотека NFC. [GNU LGPL3]. [Официальный сайт].
  • libPhenom: фреймворк событий для построения высокомасштабируемых и высокопроизводительных систем. [Apache2.0]. [Официальный сайт], [GitHub].
  • libsoundio: кроссплатформенная библиотека ввода-вывода звука в реальном времени с множеством бэкэндов. [Expat]. [Официальный сайт].
  • libucl: универсальный синтаксический анализатор конфигурационных библиотек. [FreeBSD]. [Официальный сайт].
  • libudp: реализация C с унифицированным дизайном. [GNU GPL3] или более поздняя версия. [Официальный сайт].
  • libuv: асинхронный ввод-вывод для разных платформ. [Expat]. [Официальный сайт].
  • libYAML: анализатор и излучатель YAML 1.1. [Expat]. [Официальный сайт].
  • lzo: быстрая библиотека сжатия данных. [GNU GPL2.1]. [Официальный сайт].
  • mpc: комбинированная библиотека анализаторов. [FreeBSD]. [Официальный сайт].
  • ncurses: цветная библиотека пользовательского интерфейса терминала. [GNU GPL3] или более поздняя версия. [Официальный сайт].
  • nope.c: суперлёгкая платформа на основе C для разработки расширяемых серверных и сетевых приложений (подумайте о C-версии nodejs). [Официальный сайт].
  • pbc: библиотека буфера протокола. [Expat]. [Официальный сайт].
  • rabbitmq-c: клиентская библиотека RabbitMQ. [Expat]. [Официальный сайт]. Ragel — это DSL для компиляции конечных автоматов на языке C.

GNU GPL2.1.

Официальный сайт.

uthash — реализация хеш-таблицы, которая позволяет легко добавлять уже существующие структуры данных в хеш-таблицу.

Лицензия 1-clause BSD.

Официальный сайт.

Viola — упрощённая версия libCello.

Expat.

Официальный сайт.

zlib — довольно красивая и при этом изящная библиотека сжатия.

3-clause BSD.

Официальный сайт.

[Sundown] — синтаксический анализатор исходного кода, написанный на C, который соответствует стандартам, быстрый и безопасный.

Официальный сайт.

XML

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

— Линнус Торвальдс, основатель Linux.

Expat — потоковый анализатор XML.

Expat.

Официальный сайт.

libxml2 — лёгкий и соответствующий стандартам анализатор XML.

Expat.

Официальный сайт.

[mini-xml] — небольшая библиотека для чтения и записи XML, не зависящая от стандартной библиотеки C.

GNU LGPL2.1 with static linking exception.

Официальный сайт.

Другие ресурсы

Влиятельные книги

Книги по языку C, которые оказали большое влияние и заслуживают прочтения.

(Будет дополнено.)

Веб-сайты и блоги

Значимые веб-сайты и блоги о C.

Китайский язык

(Будет дополнено)

Английский язык

(Будет дополнено)

Weibo и Weixin

Публичный аккаунт CPP Developer, посвящённый техническим статьям и инструментам для разработки на C/C++.

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/markhoo-awesome-c-cn.git
git@api.gitlife.ru:oschina-mirror/markhoo-awesome-c-cn.git
oschina-mirror
markhoo-awesome-c-cn
markhoo-awesome-c-cn
master