رهيبة ج
قائمة منسقة من C الأشياء الجيدة. تحتوي هذه القائمة على رمز المصدر المفتوح فقط (كما هو محدد في تعريف المصدر المفتوح المرتبط) ، والبائعين الذين ليسوا شرًا للموارد المادية.
يتم إصدار هذا بموجب ترخيص Creative Commons-Attribution-Sharealike ، الإصدار 4 (رمز SPDX CC-BY-SA-4.0 ). يمكنك العثور على نصه في ملف الترخيص.
ملاحظة مهمة: هذا المشروع لا يفهرس أي شيء C ++-مرتبط ؛ يعتبر فقط الأشياء النقية C.
ملاحظة للمساهمين: إذا كنت ترغب في تقديم طلب سحب ، فيرجى قراءة المساهمة.
محتويات
- منظمة العفو الدولية
- القياس
- بناء أنظمة
- المترجمين
- ضغط
- التزامن والتوازي
- تشفير
- قاعدة البيانات
- هياكل البيانات
- تصحيح الأخطاء
- توليد الوثائق
- المحررين
- محركات البرمجة النصية القابلة للتضمين
- الأطر
- برمجة اللعبة
- الرسومات
- واجهة المستخدم الرسومية
- التجزئة
- التعلم والمرجع والبرامج التعليمية
- الموارد المرجعية عبر الإنترنت
- موارد المبتدئين عبر الإنترنت
- الموارد الوسيطة عبر الإنترنت
- الموارد المتقدمة عبر الإنترنت
- الكتب المرجعية
- كتب المبتدئين
- الكتب المتوسطة
- كتب متقدمة
- ليكسينغ والحالة
- إدارة الذاكرة
- الوسائط المتعددة
- الشبكات والإنترنت
- عددي
- التنميط
- Regex
- التسلسل
- مجموعات رمز المصدر
- المكتبات القياسية
- معالجة السلسلة
- معالجة الملفات المنظمة
- CSV
- جيسون
- إيني
- آحرون
- XML
- يامل
- الاختبار
- ملحقات محرر النصوص
- أدوات
- المرافق
- أطر الويب
- بيئات Windows
منظمة العفو الدولية
رؤية الكمبيوتر ، الشباك العصبية ، التعلم الآلي ، وغيرها من الأشياء المماثلة. في الأساس ، إذا كانت جامعتك تطلق عليها الذكاء الاصطناعي ، فهي تعيش هنا.
- CCV - مكتبة رؤية الكمبيوتر CCV/CACHED/CORE ؛ رؤية الكمبيوتر الحديثة.
BSD-3-Clause - Cranium - محمولة ، رأس مكتبة آن فقط في C99.
MIT - Fann - مكتبة الشبكة العصبية السريعة السريعة ؛ تنفيذ الشبكات العصبية.
GPL-2.0-only - Genann - Ann Simple in C89 ، دون تبعيات إضافية.
Zlib - Kann - مكتبة آن ذات ترفع.
MIT - Libdeep - مكتبة التعلم العميق.
BSD-3-Clause - M2CGEN - أداة CLI لنقل نماذج ML الكلاسيكية المدربة إلى رمز C الأصلي مع تبعيات صفرية.
MIT - SOD - مكتبة رؤية الكمبيوتر المدمجة والآلة.
GPL-3.0-only
القياس
مقارنة أداء الأنظمة الفرعية المختلفة عبر بنيات الرقائق/النظام المختلفة.
- B63-أداة التراجع الدقيقة الخفيفة الوزن لـ C.
Apache-2.0
بناء أنظمة
الأدوات التي تتم أتمتة بناء واختبار المشاريع في C.
- Autotools - المعروف أيضًا باسم GNU Build System (Automake ، Autoconf ، Libtool ...) هو واحد من أنظمة الإنشاء الأكثر استخدامًا (تكوين &&). GPL-1.0-or-later
- Autotools Project Skeleton - هيكل عظمي بسيط Autotools (قالب) للاضطلاع بسرعة مشاريع جديدة.
BSD-2-Clause - Cmake - عائلة من الأدوات من طبة الهومية المصممة لإنشاء وتجميع البرامج واختبارها.
BSD-3-Clause - GNU Make - Tool التي تتحكم في توليد الملفات التنفيذية والملفات الأخرى غير المصدر للبرنامج.
GPL-3.0-or-later - ميسون - نظام بناء سريع للغاية وسهل الاستخدام. بناء على النينجا.
Apache-2.0 - Premake - الأداة المساعدة لخط الأوامر الذي يقرأ تعريفًا مكتوبة لمشروع البرنامج ويستخدمه لإنشاء ملفات المشروع لصنع Visual Studio و 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 - Firm - Library التي توفر تمثيلًا وسيطًا قائمًا على الرسم البياني ، والتحسينات ، وتوليد رمز التجميع مناسبًا للاستخدام في المجمعين. يأتي مع مثال C في الواجهة الأمامية تحت نفس الترخيص.
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 - FinitestateTentropy - برامج ترميز ضغط عالية عالية الكفاءة تم تحسينها لمنظمة المعالجة المركزية الحديثة.
BSD-2-Clause - الكثافة - مكتبة ضغط فائقة السرعة.
BSD-3-Clause - Heatshrink - مكتبة ضغط البيانات/إلغاء الضغط للأنظمة المضمنة والوقت الحقيقي.
ISC - fast_zlib - تحسين Zlib ، الذي يعمل بشكل أسرع من 2 إلى 10 مرات.
BSD-3-Clause - Fastlz - مكتبة الضغط غير المفقودة البرق (Type LZ77). يمكن تدميره على هدف صغير مثل عائلات القشرة الذراع. رمز المصدر قابل للتدمير مباشرة على مشروعك (زوج من ملفات H/C) ، لا يوجد تخصيص ذاكرة ديناميكية.
MIT - Huffandpuff - تشفير وفك تشفير Huffman Minimal. المجال العام.
- Libzip - C Library للقراءة وإنشاء وتعديل أرشيفات الرمز البريدي.
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 - شوكو - ضاغط لأوتار نص صغيرة.
MIT - SimDcomp - مكتبة بسيطة لضغط قوائم الأعداد الصحيحة باستخدام التعبئة الثنائية. يستفيد من تعليمات SIMD على x86.
BSD-3-Clause - Smaz - مكتبة ضغط السلسلة الفعالة.
BSD-3-Clause - Squash - مكتبة تجريد الضغط ، مع بعض الأدوات المساعدة.
MIT - Turbopfor - أسرع ضغط عدد صحيح.
GPL-2.0-or-later - Turborle - تشفير الطول الأكثر فعالية.
GPL-2.0-or-later - ZIP - مكتبة معالجة الأرشيف الصغيرة حقًا.
Unlicense - Zlib - مكتبة ضغط على نطاق واسع ولكن بدقة غير مزعجة.
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 - Primitives التزامن ، وآليات استصلاح الذاكرة الآمنة وهياكل البيانات غير الحظر.
BSD-2-Clause - FCFS RWLOCK-قفل القراء/الكتاب الذي يخدم أول من يأتي لخيوط POSIX.
CC0-1.0 - Libaco - مكتبة Coroutine سريعة الخفيفة وخفيفة الوزن.
Apache-2.0 - LibConcurrent - مكتبة البرمجة المتزامنة ، باستخدام Coroutines ، لـ C11.
BSD-3-Clause - LIBCSP - مكتبة التزامن عالية الأداء تتأثر بنموذج CSP.
MIT - Libdill - المكتبة التي تجعل البرمجة المتزامنة منظمة سهلة.
MIT - LIBHL - مكتبة تنفيذ واجهة برمجة تطبيقات آمنة مؤشرات ترابط لإدارة مجموعة من هياكل البيانات. يوفر أيضًا بعض الوظائف الداعمة والهياكل للبرمجة المتزامنة والمتزامنة.
LGPL-3.0-only - Liburcu - مكتبة مزامنة البيانات ، والتي تتوافق خطيًا مع عدد النوى.
LGPL-2.1-or-later - مطحنة - التزامن على غرار.
MIT - Oclkit - غلاف Opencl من ترفع.
GPL-3.0-or-later - OCL-MLA-Opencl التجريدات متوسطة المستوى.
BSD-3-Clause - OpenMP - مجموعة من pragmas المصممة للسماح بموازنة سهلة للرمز. المعيار (الترخيص غير قابل للتطبيق).
- افتح MPI - تنفيذ واجهة تمرير الرسائل.
BSD-3-Clause - PAL - مكتبة محسنة للرياضيات ، والمعالجة المتوازية وحركة البيانات.
Apache-2.0 - PTH-التنفيذ المحمول للجدولة غير القائمة على الأولوية غير المسبوقة لمؤشرات الترابط المتعددة للتنفيذ.
GPL-3.0-or-later - PTHREADS - مكتبة موضوع POSIX. المعيار (لا يوجد ترخيص قابل للتطبيق).
- TinyCthread - تنفيذ محمول ، صغير لـ C11 Threads 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 - RETTER - مجموعة من وظائف التجزئة والأصفار والأدوات والمكتبات والمواد المتعلقة بالتشفير والأمن. المجال العام.
- تنفيذ S2N - C99 لبروتوكولات TLS/SSL ، المصممة لتكون بسيطة وسريعة ومع الأمن كأولوية.
Apache-2.0 - SPHLIB - مجموعة من تطبيقات مختلف وظائف التجزئة ، بما في ذلك العديد من وظائف التشفير.
MIT - Trezor -Crypto - خوارزميات تشفير محسنة بشكل كبير للأجهزة المدمجة.
MIT - Bfish - واحد تشمل ANSI -C Blowfish ECB Crypto Library. المجال العام.
قاعدة البيانات
قواعد البيانات ومتاجر البيانات مع C APIs.
- BerkeleyDB-مكتبة للحصول على قاعدة بيانات مضمنة عالية الأداء لبيانات القيمة الرئيسية.
AGPL-3.0-only - DuckDB - قاعدة بيانات تحليلية سريعة في العملية ، مع C API.
MIT - EJDB2 - محرك قاعدة بيانات JSON قابلة للتضمين.
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 - متجر قيمة مفتاح متقدم.
BSD-3-Clause - صوفيا - قاعدة بيانات القيمة الرئيسية الحديثة ، قابلة للتضمين.
BSD-2-Clause - Sparkey - مكتبة تخزين مفتاح/قيمة ثابتة بسيطة. تم تصميمه للأحمال الثقيلة القراءة مع إدراج كبير بالجملة.
Apache-2.0 - SQLite-محرك قاعدة بيانات SQL المعاملات SQL ، بدون خادم ، محرك SQL. المجال العام.
- Unqlite-تكوين ذاتي ، بدون خادم ، تكوين صفر ، محرك NOSQL المعاملات.
BSD-2-Clause - WhitedB - مكتبة قاعدة بيانات خفيفة الوزن ، تعمل بالكامل في الذاكرة الرئيسية.
GPL-3.0-or-later - FlashDB-قاعدة بيانات الوزن الخفيفة التي تدعم بيانات القيمة الرئيسية والسلسلة الزمنية.
Apache-2.0 - TDENGINE-قاعدة بيانات السلسلة الزمنية الأصلية السحابية.
AGPL-3.0-only
هياكل البيانات
- C-MACRO-COLLECTS-قم بإنشاء هياكل بيانات بسيطة وعامة باستخدام وحدات الماكرو.
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 ++ الخلفية).
BSD-2-Clause - liblfds - مكتبة بنية البيانات الخالية من القفل المحمولة. المجال العام (أكثر بالضبط ، أيا كان الترخيص الذي تريده).
- LIBSRT - هياكل البيانات الناعمة والشاقة في الوقت الحقيقي.
BSD-3-Clause . - list.h - تطبيقات لوظائف القائمة المرتبطة المرتبطة ومرتبطة بشكل مضاعف.
GPL-3.0-only - M*lib - مكتبة للحاويات العامة ، ولكن typeafe c. تم تنفيذها كرأس فقط.
BSD-2-Clause - في الخارج - جمع هياكل البيانات العامة المرجعية.
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 - Debug - مكتبة رأس واحدة لتسهيل "تصحيح الأخطاء".
MIT - ESBMC - مدقق نموذج فعال يستند إلى SMT ؛ أداة للتحقق من البرامج المفردة والمتعددة ، وتأكيدات المستخدم ، والتدفق ، وسلامة المؤشر/الذاكرة.
Apache-2.0 - GDB - GNU Project Debugger.
GPL-3.0-or-later - LLDB - LLVM Debugger.
NCSA - RR - تصحيح الأخطاء التي تسجل عمليات الإعدام غير المحددة للسماح بالتصحيح الحتمي.
BSD-2-Clause - Valgrind - مجموعة من أدوات التحليل الديناميكي ، بما في ذلك مدقق التسرب.
GPL-2.0-only
توليد الوثائق
- CXREF - يولد الوثائق في اللاتكس أو HTML أو RTF أو SGML.
GPL-2.0-only - Doconce - لغة الترميز الموسومة بشكل متواضع والتي يمكن استخدامها لإنشاء مجموعة من التنسيقات.
BSD-3-Clause - Doxygen - أداة قياسية لتوليد وثائق من مصادر مشروحة. يمكن أن تولد مجموعة كبيرة من التنسيقات.
GPL-2.0-only
المحررين
مربو ، محررين من نوع IDE. إذا كنت تريد محرر النصوص للمبرمج ، فابحث في مكان آخر. علاوة على ذلك ، كل ما تستخدمه على الأرجح يدعم C على أي حال.
- Anjuta Devstudio - Gnome IDE.
GPL-2.0-only - الكود :: الكتل-IDE القابلة للتمديد ، القابلة للتكوين دعم C.
GPL-3.0-only - CODELITE - عبر منصة IDE.
GPL-2.0-only - Geany - IDE الصغيرة والسريعة.
GPL-2.0-or-later - Kdevelop - Kde Ide.
GPL-2.0-only - Zinjai - IDE البسيطة وخفيفة الوزن وغنية بالميزات.
GPL-3.0-only
محركات البرمجة النصية القابلة للتضمين
عندما لا يكون C هو الحل الصحيح ، أو عندما تحتاج إلى محرك إهانة أكثر ديناميكية:
- Duktape - محرك JavaScript قابل للتضمين مع التركيز على قابلية النقل و
MIT البصمة المدمجة. - Metacall - وقت تشغيل polyglot عبر المنصات والذي يدعم NodeJs ، JavaScript ، TypeScript ، Python ، Ruby ، C#، WASM ، Java ، Cobol والمزيد.
Apache-2.0
الأطر
المكتبات الكبيرة التي توفر هياكل البيانات وغيرها من الأشياء التي تتوقعها من مكتبة قياسية "حديثة".
- APR - Apache Portable Runtime ؛ مكتبة أخرى من وظائف الأداة المساعدة عبر المنصات.
Apache-2.0 - C خوارزميات - جمع الخوارزميات الشائعة وهياكل البيانات.
ISC - CPL - مكتبة خطوط الأنابيب المشتركة ؛ مجموعة من المكتبات المصممة لتكون مجموعة أدوات شاملة وفعالة وقوية.
GPL-2.0-only - EFL - مجموعة كبيرة من هياكل البيانات المفيدة والوظائف. تراخيص مختلفة ، كل المصادر المفتوحة.
- GLIB - مكتبة وظائف وهياكل الأداة المساعدة ، المصممة لتكون محمولة وفعالة وقوية.
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 - مكتبة نظام Cross -Platform C. Zero Zero التبعيات الطرف الثالث ، يستخدم فقط مكالمات النظام الأصلي.
MIT - QLIBC - مكتبة بسيطة وقوية ، مصممة كبديل لـ GLIB مع التركيز على أن تكون صغيرة وخفيفة.
BSD-2-Clause - SC - المكتبات الشائعة وهياكل البيانات لـ C.
MIT - Tbox - مكتبة متعددة المنصات مع عدد كبير من القدرات.
Apache-2.0 - PSPSDK - SDK مفتوح المصدر لتطوير PSP Homebrew. تراخيص مختلفة.
برمجة اللعبة
المحركات والمكتبات والأشياء المفيدة الأخرى على وجه التحديد لصنع الألعاب.
- Allegro - منصة ، تطوير ألعاب الفيديو ومكتبة الوسائط المتعددة.
Zlib - Assetkit؟ مكتبة الأصول ثلاثية الأبعاد/مكتبة/util على أساس
MIT لمواصفات Collada/GLTF - Astera - C99 Cross Platform 2D Game Library
MIT - CGLM -؟ OpenGL/Graphics Math (GLM) من أجل C.
MIT - Chipmunk2D - مكتبة الفيزياء سريعة وخفيفة الوزن.
MIT - CMT -؟ C Bindings/Wrappers لإطار الرسومات المعدنية من Apple.
MIT - Corange-Game Engine في Pure C.
BSD-2-Clause - CSFML - الربط لـ SFML.
Zlib - Darkplaces - نسخة معدلة من محرك Quake2.
GPL-2.0-only - الايبوكسي - مكتبة للتعامل مع إدارة مؤشر وظيفة OpenGL.
MIT - EXENGINE - محرك اللعبة ثلاثية الأبعاد في C99 مع قالب بدء.
MIT - FLECS - نظام مكونات كيان متعددة مؤشرات الترابط مكتوبة لـ C89 و C99
MIT - Freecell Solver - مجموعة من المكتبات وبرامج سطر الأوامر لحل Freecell تلقائيًا وبعض المتغيرات المماثلة لـ Card Solitaire.
MIT - FreeGlut - بديل لمجموعة أدوات OpenGL. يسمح بإنشاء وإدارة Windows مع سياقات OpenGL.
X11 - GLFW - مكتبة متعددة المنصات لإنشاء Windows مع سياقات OpenGL.
Zlib - Ioquake3 - Quake3 محرك ، تم تحريره أخيرًا.
GPL-2.0-only - كازماث - مكتبة الرياضيات للألعاب.
BSD-2-Clause - LIBAO - مكتبة الصوت عبر المنصات مع مجموعة واسعة من المخرجات.
GPL-2.0-or-later - Librg-مكتبة شبكات لعبة C99 Pure لإنشاء حلول خادم عميل متعددة اللاعبين بسيطة وأنيقة.
Apache-2.0 - MATHC - مكتبة الرياضيات للبرمجة 2D و 3D.
ZLib - ORX-محرك اللعبة المحمولة ، خفيفة الوزن ، قائم على المكونات الإضافية ، مدفوعة بالبيانات ، وموجهة نحو ثنائية الاتجاه.
Zlib - زلزال - محرك الزلزال.
GPL-2.0-only - Quake2 - Quake2 Engine.
GPL-2.0-only - RAYLIB-مكتبة بسيطة وسهلة الاستخدام لتعلم برمجة ألعاب الفيديو.
Zlib - Retroarch - المرجع الأمامي لـ Libretro.
GPL-3.0-only - SDL2-مكتبة منصة عبر المنصات المصممة لتوفير وصول منخفضة المستوى إلى الصوت ولوحة المفاتيح والماوس وأدوات التحكم وأجهزة الرسومات عبر OpenGL.
Zlib - SDL-GPU-مكتبة للرسومات ثنائية الأبعاد عالية الأداء. بناء على SDL.
MIT - Sigil - مكتبة تكامل الصوت والإدخال والرسومات ؛ بديل بسيط للمكتبات الأخرى للقيام بكل هذه الأشياء. تراخيص مختلفة ، كل المصادر المفتوحة.
- UASTAR - الحد الأدنى من تطبيق*.
ZLib
الرسومات
التلاعب البرمجي للرسومات في C ؛ إذا كنت ترغب في إنشاء واجهة المستخدم الرسومية ، فإن قسم واجهة المستخدم الرسومية لديه ما تحتاجه.
- Assetkit؟ مكتبة الأصول ثلاثية الأبعاد/مكتبة/util على أساس
MIT لمواصفات Collada/GLTF - القاهرة - مكتبة الرسومات 2D.
LGPL-2.1-only أو MPL-1.1 . - CMT -؟ C Bindings/Wrappers لإطار الرسومات المعدنية من 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 - مكتبة الوظائف لإضفاء الطابع النضج على رسومات المتجه ثنائية الأبعاد.
GPL-3.0-or-later - Lightmapper - مكتبة ملف واحد لخبز Lightmap ، باستخدام عارض OpenGL موجود. المجال العام.
- Little CMS - نظام إدارة الألوان. ويوفر تحويلات سريعة بين ملفات تعريف ICC.
MIT - Mozjpeg - محسّن JPEG Encoder.
BSD-3-Clause - NANOVG - مكتبة رسم ناقلات ثنائية الأبعاد مضادة للمكانة أعلى OpenGL ، لاتصالات واجهة المستخدم والتصورات.
Zlib - OpenGL - معيار الصناعة للرسومات عالية الأداء ، مع ربط C الأصلي. تراخيص مختلفة.
- Plutovg - مكتبة رسومات متجه ثنائية الأبعاد مستقلة في C
MIT - الشراع - ⛵ مكتبة فك تشفير الصورة الصغيرة والسريعة المفقودة للبشر (وليس للآلات)
MIT
واجهة المستخدم الرسومية
مجموعات أدوات عنصر واجهة مستخدم ، أو أشياء تهدف إلى استخدامها بطريقة مماثلة لها.
- GTK+ - مجموعة أدوات عنصر واجهة المستخدم عبر المنصات.
LGPL-2.1-only - IUP - مجموعة أدوات عنصر واجهة مستخدم أخرى عبر المنصات.
MIT - Microui - مكتبة واجهة مستخدم فورية صغيرة مكتوبة في ANSI C.
MIT المحمولة - Nappgui - SDK Professional لإنشاء تطبيقات سطح المكتب عبر المنصات باستخدام C.
MIT - Nuklear - Small ، C89 ، مجموعة أدوات أداة واحدة. المجال العام.
- tinyfiledialogs - مكتبة ملف واحد لحوار حوار بسيطة. متوافق مع العديد من مجموعات الأدوات الأخرى والأدوات.
Zlib - TK - مجموعة أدوات القطعة الأساسية. جزء من TCL/TK.
TCL - مجموعة أدوات Xforms - مجموعة أدوات عنصر واجهة المستخدم مصممة لنظام Xwindow.
LGPL-2.1-only - LVGL-واجهة المستخدم الرسومية المضمّنة مع عناصر رسومية سهلة الاستخدام ، صور جميلة وصمة ذاكرة منخفضة.
MIT - LUIGI - مكتبة واجهة المستخدم الرسومية ذات الرئاسة الفردية لـ WIN32 و X11 و ESSENCE.
MIT
التجزئة
تطبيقات وظيفة التجزئة للأغراض غير المقيدة. يمكن العثور على تجزئة التشفير في قسم التشفير.
- CLHASH - مكتبة تنفيذ وظيفة تجزئة clhash سريعة يبعث على السخرية. يعمل فقط على Intel Haswell أو أحدث.
Apache-2.0 - Highwayhash - Fast ، Strong ، وظيفة تجزئة SIMD. يحتوي أيضًا على تنفيذ Siphash (على الرغم من أن هذا أبطأ).
Apache-2.0 - spookyhash - وظيفة التجزئة السريعة للغاية.
BSD-3-Clause - T1HA - تجزئة إيجابية سريعة - وظيفة تجزئة سريعة وسريعة.
BSD-3-Clause - xxhash - خوارزمية التجزئة السريعة للغاية. يأتي في أصناف 32 و 64 بت.
BSD-2-Clause
التعلم والمرجع والبرامج التعليمية
موارد تعلم البرمجة C بشكل عام ، أو شيء مفيد فيما يتعلق ببرمجة C.
الموارد المرجعية عبر الإنترنت
- معايير تخصيص الذاكرة القفل
- Cap app - comp.lang.c بشكل متكرر الأسئلة
- مقارنة بين تطبيقات المكتبة القياسية C/POSIX لـ Linux
- مسودة C89 معيار
- مسودة C99 معيار
- مسودة C11 معيار
- العثور على أفضل محاكاة 64 بت prng
- معيار ترميز SEI CERT C
- TinyC.Game - ألعاب T Tiny C يمكنك تجميعها وتشغيلها الآن http://tinyc.games
MIT
موارد المبتدئين عبر الإنترنت
- برنامج تعليمي على المؤشرات
- برنامج تعليمي على Makefiles المحمولة
- بناء مشاريع ج
- ج برمجة wikibook
- مقدمة إلى "المرح" ج
- تعلم C مع GDB
- memcpy vs memmove
- برنامج برمجة Threads Posix (مؤرخ قليلاً ، لكن معظمه لا يزال صالحًا ومفيدًا)
- البرنامج التعليمي لبرمجة GNU C (PDF عبر الإنترنت)
- القولون في ج
- ما يجب أن يعرفه المبرمج C عن الذاكرة
- Codeforwin: تعلم البرمجة C ، دروس هياكل البيانات والتمارين عبر الإنترنت
- تعلم C: برنامج تعليمي C مجاني ومفتوح المصدر
- كيفية برمجة مغامرة نصية في ج
الموارد الوسيطة عبر الإنترنت
- 8 حيل GDB يجب أن تعرفها
- 10 C99 الحيل
- مورد تعليمي شامل MPI
- قم ببناء محرر النصوص الخاص بك
- الغوص في التزامن: تجربة الطفرة والذرية
- العد المرجعي العام C
- كيف تكتب محمولة C دون تعقيد بنيتك
- مقدمة إلى OpenMP (فيديو)
- تعليمي OpenMP (لمعايير OpenMP3)
- MPI البرنامج التعليمي
- C - كتابة موزع على نطاق واسع C.
- بعض الميزات غير المعروفة أو الحيل بلغة ج
- ما يجب أن يعرفه كل مبرمج C عن السلوك غير المحدد
الموارد المتقدمة عبر الإنترنت
- metaprogramming المتقدمة في ج
- برنامج تعليمي سريع لتنفيذ وتصحيح الأخطاء malloc ، مجاني ، calloc ، و realloc
- بت twiddling الاختراقات
- تنفيذ مؤشرات ذكية للغة البرمجة C
- وظائف مضمنة في ج
- هياكل التحكم المخصصة في الجثث في ج
- حل مشكلة التخزين المؤقتة لماكرو C
- بعض الزوايا المظلمة من ج
- كتابة رمز C و C فعال
- تجميع أنواع البيانات الجبرية في C99 النقي
الكتب المرجعية
- C: دليل مرجعي 5E - كتاب مرجعي كامل لـ C99.
- C باختصار 2E - كتاب مرجعي موجز لـ C11.
- ج الجيب مرجع - كتاب مرجعي موجز لـ C99.
- لغة البرمجة C 2E - الكتاب الأصلي على C ، من قبل المبدعين.
كتب المبتدئين
- C Primer Plus 6E - برنامج تعليمي كامل عن البرمجة في C11.
- C برمجة: نهج حديث - كتاب ممتاز لتعلم أساسيات C.
- رئيس أول ج - كتاب "رئيس الرأس الأول" للتعلم C.
الكتب المتوسطة
- القرن الحادي والعشرين C - كتاب برمجة ثانٍ جيد على C.
- فهم واستخدام مؤشرات C - مورد متعمق على المؤشرات في C.
- Zeromq - كتاب لاستخدام Zeromq مع C.
كتب متقدمة
- الخبراء برمجة C: أسرار عميق C - نظرة مثيرة ومتعمقة ومسلية على الأجزاء الداخلية لـ C.
- Modern C ، الإصدار الثالث: يغطي معيار C23 - في الإصدار C ، الإصدار الثالث ، ستتعلم إمكانات تسخير C الكاملة باستخدام أحدث الأدوات والتقنيات.
ليكسينغ والحالة
المكتبات خصيصًا للتحليل المعجمي (أو ليكسينغ) والتحليل النحوي (أو التحليل).
- فليكس - مولد محلل معجمي سريع.
BSD-2-Clause - GNU Bison-مولد محلل أساسي للأغراض العامة يحول قواعد خالية من السياق المشروح إلى مجموعة من المحلات.
GPL-3.0-or-later - Hammer - Compinators Parser للتنسيقات الثنائية.
GPL-2.0-only - MPC - LARSER COMBINATOR LIBERRARY.
BSD-2-Clause - البومة - مولد محلل للغات pushdown بشكل واضح.
MIT - RE2C - Generator Lexer ، الذي ينتج Lexers السريع ، مع إمكانية الوصول إلى الداخلية. المجال العام.
إدارة الذاكرة
سواء أكان مجموعة مختلفة وأسرع أو مجموعة من القمامة صريحة ، أي شيء يتعلق بإدارة الذاكرة C هنا.
- Boehm GC - جمع القمامة لـ C. التراخيص المختلفة ، جميع المصادر المفتوحة.
- Jemalloc - تطبيق Malloc الذي يؤكد تجنب التجزئة ودعم التزامن القابل للتطوير.
BSD-2-Clause - تخصيص الذاكرة غير القاتلة - تخصيص الذاكرة الفعالة.
GPL-3.0-or-later - libcsptr - مؤشرات ذكية لـ C.
MIT - RPMALLOC-مؤشرات الترابط ، مخصص للذاكرة السريعة ، محاذاة بشكل طبيعي على حدود 32 بايت. المجال العام.
- تالوك - نظام تجمع الذاكرة الهرمي المرجعي مع المدمرين.
LGPL-3.0-or-later - TLSF - مخصصات ملائمة مناسبة على مستويين ؛ مخصص للذاكرة ديناميكي للأغراض العامة المصمم لتلبية المتطلبات في الوقت الفعلي. تنفيذ محدث.
BSD-3-Clause
الوسائط المتعددة
- Aubio - مكتبة لتحليل الصوت والموسيقى.
GPL-3.0-or-later - FFMPEG - الحل الكامل ، عبر المنصات لتسجيل وتحويل ودفق الصوت والفيديو.
LGPL-2.1-or-later - Gstreamer - إطار عمل للوسائط الصوتية والبصرية.
LGPL-2.1-or-later - LIBMPV - مكتبة لعب الموسيقى.
GPL-2.0-or-later - libsndfile - مكتبة لقراءة وكتابة ملفات الصوت. يدعم العديد من التنسيقات.
LGPL-2.1-only أو LGPL-3.0-only - Libsoundio-مكتبة لمكتبة وإدخال الصوت في الوقت الحقيقي. لديه مجموعة من النتيجة الخلفية.
MIT - LIBVLC - مكتبة الوسائط المتعددة الكاملة لترميز الصوت والفيديو ، فك التشفير ، التشغيل والبث.
GPL-2.0-only - LODEPNG - Decoder PNG Simple PNG وشرح ، لا تتطلب أي تبعيات أخرى.
BSD-3-Clause - Minimp3 - مكتبة رأس وحدة فك ترميز MP3 خفيفة الوزن.
CC0-1.0 - SoundPipe - مكتبة DSP الموسيقى الخفيفة الوزن.
MIT
الشبكات والإنترنت
الشبكات ذات المستوى المنخفض والأشياء المتعلقة بالإنترنت. إذا كنت تريد شيئًا أكثر شمولاً وعالية المستوى ، فقد ترغب في قسم أطر الويب.
- ASNLC - برنامج التحويل البرمجي لمواصفات ASN.1 في رمز المصدر C.
BSD-2-Clause - CHL - مكتبة النص التشعبي - مكتبة لكتابة تطبيقات الويب في C.
GPL-3.0-only - CZMQ - الربط عالي المستوى لـ Zeromq.
MPL-2.0 - dyad.c - مكتبة الشبكات الخفيفة ، السهلة ، غير المتزامنة.
MIT - GNU ADNS-مكتبة وأدوات DNS المتقدمة وسهلة الاستخدام وقدرة على التزامن.
GPL-3.0-or-later - Gumbo -Parser - HTML5 Parsing Library في 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 - ليبيف - حلقة حدث أخرى.
BSD-2-Clause - libevent - استبدال حلقة الحدث لخوادم الشبكة.
BSD-3-Clause - libhttpd - مكتبة لإضافة إمكانات خادم الويب الأساسية إلى تطبيق أو جهاز مضمن.
GPL-2.0-only - LIBHV - مكتبة حلقة حدث Cross Platform.
BSD-3-Clause - الرغبة الجنسية - تنفيذ مواصفات StringPrep و PunyCode و IDNA.
GPL-3.0-or-later - libmicrohttpd - مكتبة صغيرة تجعل من السهل تشغيل خادم HTTP كجزء من تطبيق آخر.
LGPL-2.1-or-later - LIBNL -
libnl هي مجموعة من المكتبات لإثارة واجهات برمجة التطبيقات لبروتوكول NetLink (استبدال IOCTL). إنه الاستخدام الأساسي هو التواصل مع kernel Linux ، لتعديل حالة الشبكات (الواجهات ، التوجيه ، إلخ ...). LGPL-2.1-only - LIBONION - مكتبة خادم HTTP ، المصممة لتكون سهلة الاستخدام.
Apache-2.0 - LIBPCAP - توفر API لآلية التقاط حزم Kernel المختلفة.
BSD-3-Clause - Libquickmail - المكتبة تهدف إلى منح المطورين وسيلة لإرسال بريد إلكتروني من تطبيقاتهم. يدعم متعددة المستفيدين من/CC/BCC والمرفقات دون حدود الحجم.
GPL-3.0-or-later - Libsagui - مكتبة لخوادم HTTP عبر المنصات.
LGPL-3.0-or-later - Libuhttpd - مكتبة HTTP مرنة للغاية وخفيفة الوزن وغير متزامنة تمامًا تستند إلى Libev و HTTP -Parser لـ Linux المدمج.
MIT - LIBVNCSERVER - مكتبات عبر المنصات لتنفيذ خادم VNC و/أو وظائف العميل.
GPL-2.0-or-later - Libwebsock-مكتبة مقبس ويب سهلة الاستخدام وقوية.
LGPL-3.0-only - LIBZMQ - مكتبة Core Zeromq ، مكتبة رسائل غير متزامنة عالية الأداء ، تهدف إلى الاستخدام في التطبيقات الموزعة أو المتزامنة. 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 - تنفيذ قائم على Zeromq.
MIT - NNG - nanomsg -next -generation - رسائل خفيفة الوزن بدون وسيط.
MIT - OSIP - تنفيذ SIP دون تبعيات إضافية.
LGPL-2.1-or-later - Silgy - محرك HTTP (S) غير المتزامن لمشاريع C/C ++.
MIT - Socket99 - Wrapper C99 لـ BSD Sockets API.
ISC - TWITC - مكتبة مصغرة للتفاعل مع API Twitter Oauth.
MIT - Uriparser - RFC 3986 متوافقة مع مكتبة URI والتعامل معها.
BSD-3-Clause - Wslay - مكتبة WebSocket. ينفذ الإصدار 13 من بروتوكول WebSocket ، كما هو موضح في RFC 6455.
MIT - Zyre-Framework للتطبيقات القائمة على القرب من نظير إلى نظير.
MPL-2.0
عددي
- Apophenia - مكتبة للحوسبة الإحصائية والعلمية.
GPL-2.0-only - ARB - مكتبة للحساب الفاصل التعسفي.
LGPL-2.1-or-later - ATLAS - تم ضبط برنامج الجبر الخطي تلقائيًا.
BSD-3-Clause - CLBLAS - وظائف Blas مكتوبة في OpenCl.
Apache-2.0 - CMATHL - مكتبة الرياضيات مع مجموعة كبيرة ومتنوعة من الوظائف الرياضية مع دعم بناء CMAKE. تسعى إلى أن تكون قريبة من C89/C90 متوافقة مع قابلية النقل.
MIT - كوبا - مكتبة للتكامل العددي متعدد الأبعاد.
LGPL-3.0-only - FFT-C-تحويل فورييه عالي الأداء من Netlib's FftPack ؛ ملفوفة بتنسيق سهل الاستخدام
MIT - FFTW - أسرع تحويل فورييه في الغرب ؛ روتين تحويل فورييه السريع للغاية.
GPL-2.0-or-later - فلينت - مكتبة سريعة لنظرية الأرقام ؛ مكتبة تدعم الحساب مع الأرقام ، كثير الحدود ، سلسلة الطاقة والمصفوفات ، من بين أمور أخرى.
GPL-2.0-or-later - GLPK - GNU Linear Programming Kit; a package designed for solving large-scale linear programming, mixed integer programming and other related problems.
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
التنميط
- 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. MIT
- libxml2 - Standards-compliant, portable XML parser. MIT
- xml - Simple, low-memory-use XML parser / tokenizer.
MIT
YAML
- libYAML - YAML 1.1 parser and emitter.
MIT
معالجة الإشارة
- 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. مدمج.
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
المرافق
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.