ยอดเยี่ยม C
รายการที่ดีของ C สิ่งที่ดี รายการนี้มี เฉพาะ รหัสโอเพ่นซอร์ส (ตามที่กำหนดโดยนิยามโอเพนซอร์สที่เชื่อมโยง) และผู้ขายที่ไม่ได้ชั่วร้ายสำหรับทรัพยากรทางกายภาพ
สิ่งนี้ได้รับการเผยแพร่ภายใต้ใบอนุญาต Creative Commons-Attribution-Sharealike เวอร์ชัน 4 (รหัส SPDX CC-BY-SA-4.0 ) คุณสามารถค้นหาข้อความในไฟล์ใบอนุญาต
หมายเหตุสำคัญ: โครงการนี้ ไม่ได้ จัดทำดัชนีสิ่งใด C ++-เกี่ยวข้อง; มีการพิจารณาเฉพาะสิ่ง C บริสุทธิ์เท่านั้น
หมายเหตุสำหรับผู้มีส่วนร่วม: หากคุณต้องการทำการร้องขอการดึงโปรดอ่าน Intuth.md ก่อน
สารบัญ
- AI
- การเปรียบเทียบ
- สร้างระบบ
- ผู้รวบรวม
- การบีบอัด
- พร้อมกันและความเท่าเทียมกัน
- crypto
- ฐานข้อมูล
- โครงสร้างข้อมูล
- การดีบัก
- การสร้างเอกสาร
- บรรณาธิการ
- เครื่องยนต์สคริปต์ที่ฝังได้
- เฟรมเวิร์ก
- การเขียนโปรแกรมเกม
- กราฟิก
- ส่วนต่อประสานผู้ใช้กราฟิก
- การแฮม
- การเรียนรู้การอ้างอิงและการสอน
- ทรัพยากรอ้างอิงออนไลน์
- แหล่งข้อมูลเริ่มต้นออนไลน์
- ทรัพยากรระดับกลางออนไลน์
- ทรัพยากรขั้นสูงออนไลน์
- หนังสืออ้างอิง
- หนังสือเริ่มต้น
- หนังสือกลาง
- หนังสือขั้นสูง
- เล็กซิงและแยกวิเคราะห์
- การจัดการหน่วยความจำ
- มัลติมีเดีย
- เครือข่ายและอินเทอร์เน็ต
- เป็นตัวเลข
- การทำโปรไฟล์
- regex
- การทำให้เป็นอนุกรม
- คอลเลกชันซอร์สโค้ด
- ห้องสมุดมาตรฐาน
- การจัดการสตริง
- การประมวลผลไฟล์ที่มีโครงสร้าง
- CSV
- JSON
- อินนิ
- คนอื่น
- XML
- ยม
- การทดสอบ
- ส่วนขยายตัวแก้ไขข้อความ
- เครื่องมือ
- ระบบสาธารณูปโภค
- เฟรมเวิร์กเว็บ
- สภาพแวดล้อมของ Windows
AI
การมองเห็นคอมพิวเตอร์อวนประสาทการเรียนรู้ของเครื่องและสิ่งที่คล้ายกันอื่น ๆ โดยทั่วไปถ้ามหาวิทยาลัยของคุณเรียกมันว่า AI มันอาศัยอยู่ที่นี่
- CCV - ไลบรารีวิสัยทัศน์คอมพิวเตอร์ที่ใช้/แคช/แกนกลาง; วิสัยทัศน์คอมพิวเตอร์สมัยใหม่
BSD-3-Clause - CRANIUM - ห้องสมุด ANN แบบพกพาส่วนหัวอย่างเดียวใน C99
MIT - Fann - ห้องสมุดเครือข่ายประสาทเทียมที่รวดเร็ว; การดำเนินการตามเครือข่ายประสาท
GPL-2.0-only - Genann - Simple Ann ใน C89 โดยไม่มีการพึ่งพาเพิ่มเติม
Zlib - Kann - ห้องสมุดแอนสองไฟล์
MIT - libdeep - ห้องสมุดการเรียนรู้ลึก
BSD-3-Clause - M2CGEN - เครื่องมือ CLI เพื่อ transpile โมเดล ML คลาสสิกที่ผ่านการฝึกอบรมลงในรหัส C ดั้งเดิมที่มีการพึ่งพาศูนย์
MIT - SOD - ห้องสมุดการมองเห็นคอมพิวเตอร์และการเรียนรู้ของเครื่องจักรในตัว
GPL-3.0-only
การเปรียบเทียบ
การเปรียบเทียบประสิทธิภาพของระบบย่อยต่างๆในสถาปัตยกรรมชิป/ระบบที่แตกต่างกัน
- B63-เครื่องมือการทำเครื่องหมายขนาดเล็กน้ำหนักเบาสำหรับ C.
Apache-2.0
สร้างระบบ
เครื่องมือที่ทำให้อาคารและการทดสอบโครงการเป็นไปโดยอัตโนมัติใน C
- Autotools - หรือที่รู้จักกันในชื่อ GNU Build System (Automake, Autoconf, Libtool ... ) เป็นหนึ่งในระบบบิลด์ที่ใช้กันอย่างแพร่หลายที่สุด (กำหนดค่า && Make) GPL-1.0-or-later
- Autotools Project Skeleton - โครงกระดูก Autotools ง่าย ๆ (เทมเพลต) เพื่อบูตโปรเจ็กต์ใหม่อย่างรวดเร็ว
BSD-2-Clause - CMAKE - เครื่องมือข้ามแพลตฟอร์มของเครื่องมือที่ออกแบบมาเพื่อสร้างแพ็คเกจและซอฟต์แวร์ทดสอบ
BSD-3-Clause - GNU Make - เครื่องมือที่ควบคุมการสร้าง Executables และไฟล์ที่ไม่ใช่แหล่งอื่น ๆ ของโปรแกรม
GPL-3.0-or-later - Meson - ระบบสร้างที่รวดเร็วและใช้งานง่าย ขึ้นอยู่กับนินจา
Apache-2.0 - Premake - ยูทิลิตี้บรรทัดคำสั่งซึ่งอ่านคำจำกัดความสคริปต์ของโครงการซอฟต์แวร์และใช้เพื่อสร้างไฟล์โครงการสำหรับ Visual Studio และ GNU Make เป้าหมายอื่น ๆ ก็กำลังดำเนินการเช่นกัน
BSD-3-Clause - Scons - เครื่องมือก่อสร้างซอฟต์แวร์โดยใช้ Python
MIT - Xmake - ยูทิลิตี้สร้างข้ามแพลตฟอร์ม
Apache-2.0 - ZProject - เครื่องมือสร้างโครงการและการสร้างระบบสนับสนุนระบบ
MPL-2.0
ผู้รวบรวม
คอมไพเลอร์รวมถึงเครื่องมือที่เกี่ยวข้องกับคอมไพเลอร์และการรวบรวม
- CCACHE - แคชคอมไพเลอร์ที่ออกแบบมาเพื่อเพิ่มความเร็วในการรวมกันใหม่
GPL-3.0-or-later - Clang - คอมไพเลอร์สำหรับ LLVM รองรับ C11
NCSA - CPROC - คอมไพเลอร์ C11 ที่ใช้ QBE เป็นแบ็กเอนด์
ISC - DISTCC - โปรแกรมที่อนุญาตให้สร้างการแจกจ่ายระหว่างเครื่องหลายเครื่อง
GPL-2.0-or-later - บริษัท - ไลบรารีที่ให้การเป็นตัวแทนระดับกลางที่ใช้กราฟการเพิ่มประสิทธิภาพและการสร้างรหัสประกอบที่เหมาะสมสำหรับใช้ในคอมไพเลอร์ มาพร้อมกับตัวอย่าง C front-end ภายใต้ใบอนุญาตเดียวกัน
LGPL-2.1-only - GCC - จัดเตรียมคอมไพเลอร์ C เป็นส่วนหนึ่งของชุดคอมไพเลอร์ รองรับ C11
GPL-3.0-or-later - PCC - คอมไพเลอร์ที่น่าเคารพนับถือ รองรับ C99 ใบอนุญาตต่าง ๆ โอเพ่นซอร์สทั้งหมด
การบีบอัด
- BLOSC-ห้องสมุด Meta-compressor ที่รวดเร็วมาก ใบอนุญาตต่าง ๆ โอเพ่นซอร์สทั้งหมด
- Brotli - ห้องสมุดอัลกอริทึมการบีบอัดแบบไม่สูญเสียวัตถุประสงค์ทั่วไป มีความเร็วเทียบเท่ากับการยุบตัว แต่อัตราส่วนการบีบอัดที่สูงขึ้นมาก
MIT - CLZIP - C เวอร์ชัน C ของคอมเพรสเซอร์ข้อมูลคุณภาพสูง LZIP (การใช้งาน LZMA)
GPL-2.0-or-later - Croaring - C การใช้บิตแมปคำราม
Apache-2.0 - FINITESTATEENTROPY - ตัวแปลงสัญญาณการบีบอัดที่มีประสิทธิภาพสูงสองตัวที่ได้รับการปรับให้เหมาะสมสำหรับ CPU ที่ทันสมัย
BSD-2-Clause - ความหนาแน่น - ไลบรารีการบีบอัดที่รวดเร็วเป็นพิเศษ
BSD-3-Clause - HEATSHRINK - คลังข้อมูลการบีบอัด/การบีบอัดข้อมูลสำหรับระบบฝังตัวและแบบเรียลไทม์
ISC - Fast_zlib - ปรับปรุง Zlib ซึ่งทำงานเร็วขึ้น 2 ถึง 10 เท่า
BSD-3-Clause - Fastlz - ไลบรารีการบีบอัดแบบไม่สูญเสียสายฟ้าเร็ว (ประเภท LZ77) สามารถติดตั้งเป้าหมายเล็ก ๆ เช่นตระกูลเยื่อหุ้มสมองแขน ซอร์สโค้ดที่ฝังอยู่ในโครงการของคุณโดยตรง (ไฟล์ H/C คู่) ไม่มีการจัดสรรหน่วยความจำแบบไดนามิก
MIT - Huffandpuff - ตัวเข้ารหัส Huffman และตัวถอดรหัสน้อยที่สุด โดเมนสาธารณะ
- Libzip - C library สำหรับการอ่านการสร้างและแก้ไขคลังเก็บซิป
BSD-3-Clause - LIBBZIP2-ห้องสมุดการบีบอัดข้อมูลคุณภาพสูงที่ไม่มีสิทธิบัตร
BSD-4-Clause - Lizard - เดิมคือ LZ5; คอมเพรสเซอร์ที่มีประสิทธิภาพพร้อมการบีบอัดอย่างรวดเร็ว บรรลุอัตราส่วนการบีบอัดเทียบเท่ากับ ZIP และ ZLIB ที่ความเร็วในการบีบอัด 1,000MB/s และเร็วขึ้น
BSD-2-Clause - LZ4 - ห้องสมุดสำหรับอัลกอริทึมการบีบอัดที่รวดเร็วมาก
BSD-2-Clause - LZO - ไลบรารีการบีบอัดข้อมูลที่รวดเร็ว
GPL-2.0-or-later - PIXZ - คู่ขนาน, คอมเพรสเซอร์ XZ ดัชนี
BSD-2-Clause - Shoco - คอมเพรสเซอร์สำหรับสตริงข้อความขนาดเล็ก
MIT - SIMDCOMP - ไลบรารีง่าย ๆ สำหรับการบีบอัดรายการจำนวนเต็มโดยใช้การบรรจุแบบไบนารี ใช้ประโยชน์จากคำแนะนำ SIMD ใน X86
BSD-3-Clause - SMAZ - ไลบรารีการบีบอัดสตริงที่มีประสิทธิภาพ
BSD-3-Clause - สควอช - ห้องสมุดนามธรรมการบีบอัดพร้อมสาธารณูปโภคบางอย่าง
MIT - Turbopfor - การบีบอัดจำนวนเต็มที่เร็วที่สุด
GPL-2.0-or-later - Turborle - การเข้ารหัสความยาวรันที่มีประสิทธิภาพมากที่สุด
GPL-2.0-or-later - ZIP - ไลบรารีการประมวลผล ZIP เก็บถาวรขนาดเล็กจริงๆ
Unlicense - ZLIB - ห้องสมุดการบีบอัดที่ไร้เดียงสา
BSD-3-Clause - libarchive - libarchive เป็นห้องสมุด C แบบพกพาและมีประสิทธิภาพที่สามารถอ่านและเขียนคลังเก็บสตรีมมิ่งในรูปแบบที่หลากหลาย
BSD-3-Clause - ZLIB-NG-การแทนที่ ZLIB ด้วยการปรับให้เหมาะสมสำหรับระบบ 'รุ่นต่อไป'
BSD-3-Clause - Zstandard-อัลกอริทึมการบีบอัดที่รวดเร็วและไม่สูญเสียโดยกำหนดเป้าหมายสถานการณ์การบีบอัดแบบเรียลไทม์ที่อัตราส่วนการบีบอัดระดับ zlib หรือดีกว่า
BSD-3-Clause
พร้อมกันและความเท่าเทียมกัน
- CCHAN - ไลบรารีขนาดเล็กสำหรับการสร้างช่องสำหรับการสื่อสารระหว่างเธรด โดเมนสาธารณะ
- CheckedThreads - ไลบรารีที่เรียบง่ายสำหรับการขนานโดยมีการตรวจสอบสภาพการแข่งขันในตัว
BSD-2-Clause - CK - ดั้งเดิมพร้อมกันกลไกการเรียกคืนหน่วยความจำที่ปลอดภัยและโครงสร้างข้อมูลที่ไม่ปิดกั้น
BSD-2-Clause - FCFS RWLOCK-ผู้อ่าน/นักเขียนมาก่อนมาก่อนล็อคสำหรับเธรด POSIX
CC0-1.0 - Libaco - ห้องสมุด Coroutine แบบไม่สมมาตรและน้ำหนักเบา
Apache-2.0 - libconcurrent - ไลบรารีการเขียนโปรแกรมพร้อมกันโดยใช้ coroutines สำหรับ C11
BSD-3-Clause - LIBCSP - ห้องสมุด C พร้อมกันที่มีประสิทธิภาพสูงได้รับอิทธิพลจากโมเดล CSP
MIT - Libdill - ไลบรารีซึ่งทำให้การเขียนโปรแกรมพร้อมกันมีโครงสร้างง่าย
MIT - Libhl - ไลบรารีที่ใช้ API แบบเธรดที่ปลอดภัยเพื่อจัดการโครงสร้างข้อมูลที่หลากหลาย นอกจากนี้ยังมีฟังก์ชั่นและโครงสร้างที่รองรับสำหรับการเขียนโปรแกรมพร้อมกันและ Lockfree
LGPL-3.0-only - Liburcu - ไลบรารีการซิงโครไนซ์ข้อมูลซึ่งปรับขนาดเชิงเส้นด้วยจำนวนแกน
LGPL-2.1-or-later - Mill - ไปพร้อมกันสไตล์
MIT - OCLKIT - wrapper opencl สองไฟล์
GPL-3.0-or-later - OCL-MLA-abstractions ระดับกลาง 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
crypto
การใช้งานห้องสมุดส่วนใหญ่ของอัลกอริทึมหรือโปรโตคอลการเข้ารหัสที่รู้จักกันดี
- 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-ห้องสมุด crypto ที่ทันสมัยและใช้งานง่าย
MIT - LibtomCrypt - ชุดเครื่องมือเข้ารหัสลับแบบโมดูลาร์และพกพาที่ค่อนข้างครอบคลุม โดเมนสาธารณะ
- Mbed TLS - การใช้งาน crypto อื่น
Apache-2.0 - Miracl - จำนวนเต็มจำนวนเต็มและคริสตจักรการเข้ารหัสทางคณิตศาสตร์ที่มีเหตุผล; SDK สำหรับการเข้ารหัสเส้นโค้งรูปไข่
AGPL-3.0-or-later - Retter - คอลเลกชันของฟังก์ชั่นแฮช, ยันต์, เครื่องมือ, ห้องสมุดและวัสดุที่เกี่ยวข้องกับการเข้ารหัสและความปลอดภัย โดเมนสาธารณะ
- การใช้งาน S2N - C99 การใช้งานโปรโตคอล TLS/SSL ออกแบบมาให้เรียบง่ายรวดเร็วและมีความปลอดภัยเป็นลำดับความสำคัญ
Apache-2.0 - Sphlib - ชุดการใช้งานของฟังก์ชั่นแฮชต่างๆรวมถึงการเข้ารหัสหลายครั้ง
MIT - Trezor -Crypto - อัลกอริทึม crypto ที่ได้รับการปรับปรุงอย่างหนักสำหรับอุปกรณ์ฝังตัว
MIT - BFISH - หนึ่งรวมถึงห้องสมุด ANSI -C Blowfish ECB Crypto โดเมนสาธารณะ
ฐานข้อมูล
ฐานข้อมูลและที่เก็บข้อมูลด้วย C API
- 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 ธุรกรรม โดเมนสาธารณะ
- Unqlite-มีอยู่ในตัวเองไม่มีเซิร์ฟเวอร์ไม่มีการกำหนดค่าเป็นศูนย์เครื่องยนต์ NOSQL ธุรกรรม
BSD-2-Clause - WhitedB - Lightweight Database Library ซึ่งทำงานทั้งหมดในหน่วยความจำหลัก
GPL-3.0-or-later - FlashDB-ฐานข้อมูลน้ำหนักเบาพิเศษที่รองรับข้อมูลคีย์ค่าและอนุกรมเวลา
Apache-2.0 - TDENGINE-ฐานข้อมูลซีรีย์เวลาบนคลาวด์
AGPL-3.0-only
โครงสร้างข้อมูล
- C-macro-collections-สร้างโครงสร้างข้อมูลที่เรียบง่ายและทั่วไปโดยใช้มาโคร
MIT - CLIST - การใช้งานอาร์เรย์แบบไดนามิกที่เรียบง่ายและมีน้ำหนักเบา
BSD-2-Clause - คอลเลกชัน -C - ไลบรารีโครงสร้างข้อมูลทั่วไป
LGPL-3.0-or-later - DS - โครงสร้างข้อมูลทั่วไปและอัลกอริทึม
MIT - IGRAPH - ไลบรารีการประมวลผลกราฟ
GPL-2.0-or-later - KDTree - ห้องสมุดง่าย ๆ สำหรับการทำงานกับ KD -Trees
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 - ไลบรารีสำหรับภาชนะบรรจุทั่วไป แต่ประเภท C ดำเนินการเป็นส่วนหัวเท่านั้น
BSD-2-Clause - Offbrand - การรวบรวมโครงสร้างข้อมูลทั่วไปที่นับอ้างอิง
MIT - PackedArray - อาร์เรย์แบบสุ่มของจำนวนเต็มที่ไม่ได้ลงนามอย่างแน่นหนาของความกว้างที่ต้องการ มีการใช้งานที่ได้รับการปรับให้เหมาะสม
WTFPL - RB3PTR - ต้นไม้สีแดงดำ แสดงให้เห็นถึงการใช้งานเบื้องต้นเกือบทั้งหมดดังนั้นจึงสามารถใช้สำหรับสถานการณ์เช่นการเพิ่มฟังก์ชั่นการสั่งซื้อที่เข้ากันได้หลายฟังก์ชั่นและอื่น ๆ
MIT - Uthash - การใช้งานตารางแฮชแบบไฟล์เดี่ยว
BSD-1-Clause - vector.h - ส่วนหัวไลบรารีสำหรับรายการพิมพ์
MIT
การดีบัก
เพราะเราทุกคนต้องทำบางครั้ง เครื่องมือต่าง ๆ สำหรับการดีบักง่ายขึ้นหรือดีขึ้นรวมถึงห้องสมุดหรือรหัสที่ช่วยให้การดีบักดีขึ้น
- C -Reduce - เครื่องมือที่ใช้ไฟล์ C ขนาดใหญ่ที่มีคุณสมบัติที่น่าสนใจและผลิตไฟล์ C ขนาดเล็กกว่าโดยอัตโนมัติซึ่งมีคุณสมบัติเดียวกัน มีวัตถุประสงค์เพื่อช่วยสร้างกรณีที่มีข้อผิดพลาดน้อยที่สุดในรหัสที่ซับซ้อน
BSD-3-Clause - CBMC - C Checker รุ่นที่มีขอบเขต; เครื่องมือสำหรับการตรวจสอบขอบเขตอาร์เรย์ความปลอดภัยของตัวชี้และการยืนยันที่ผู้ใช้ระบุ
BSD-4-Clause - CFLOW - วิเคราะห์คอลเลกชันของไฟล์ต้นฉบับและพิมพ์แผนภูมิการควบคุมกราฟในโปรแกรม
GPL-3.0-or-later - ความซับซ้อน - เครื่องมือสำหรับการวัดความซับซ้อนของซอร์สโค้ด
GPL-3.0-or-later - CSCOUT - ตัววิเคราะห์รหัสต้นฉบับและเบราว์เซอร์ refactoring สำหรับโปรแกรม C
GPL-3.0-only - DDD-Front-end กราฟิกสำหรับช่วงของ debuggers บรรทัดคำสั่ง
GPL-3.0-or-later - DEBUG - ห้องสมุดหัวเดียวสำหรับ 'การดีบัก printf ที่ง่ายขึ้น'
MIT - ESBMC - ตัวตรวจสอบโมเดลที่มีขอบเขต SMT ที่มีประสิทธิภาพ เครื่องมือสำหรับการตรวจสอบโปรแกรมเดี่ยวและมัลติเธรดการยืนยันผู้ใช้ล้นและความปลอดภัยของตัวชี้/หน่วยความจำ
Apache-2.0 - GDB - GNU Project Debugger
GPL-3.0-or-later - LLDB - DEBUGGER LLVM
NCSA - RR - ดีบักเกอร์ที่บันทึกการประหารชีวิตที่ไม่ได้กำหนดเพื่อให้สามารถทำการดีบักที่กำหนดขึ้นได้
BSD-2-Clause - Valgrind - ช่วงของเครื่องมือวิเคราะห์แบบไดนามิกรวมถึงตัวตรวจสอบการรั่วไหล
GPL-2.0-only
การสร้างเอกสาร
- CXREF - สร้างเอกสารใน LATEX, HTML, RTF หรือ SGML
GPL-2.0-only - DOCONCE - ภาษามาร์กอัปที่ติดแท็กอย่างสุภาพซึ่งสามารถใช้ในการสร้างรูปแบบที่หลากหลาย
BSD-3-Clause - Doxygen - เครื่องมือมาตรฐาน DE -FACTO สำหรับการสร้างเอกสารจากแหล่งข้อมูลที่มีคำอธิบายประกอบ สามารถสร้างรูปแบบที่หลากหลาย
GPL-2.0-only
บรรณาธิการ
นักเขียนบรรณาธิการประเภท IDE หากคุณต้องการโปรแกรมแก้ไขข้อความของโปรแกรมเมอร์ให้ดูที่อื่น นอกจากนี้สิ่งที่คุณใช้เป็นไปได้ที่จะรองรับ C อยู่ดี
- Anjuta Devstudio - Gnome IDE
GPL-2.0-only - Code :: Blocks-ขยายได้ 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 Cross -Platform ซึ่งรองรับ 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 - Library of Utility Functions และโครงสร้างที่ออกแบบมาให้เป็นแบบพกพามีประสิทธิภาพและทรงพลัง
LGPL-2.1-only - KLIB - การใช้งานขนาดเล็กและน้ำหนักเบาของอัลกอริทึมทั่วไปและโครงสร้างข้อมูล
MIT - Libcork - ฟังก์ชั่นและโครงสร้างยูทิลิตี้ออกแบบมาสำหรับระบบที่มีทรัพยากรที่ จำกัด สามารถฝังได้
BSD-3-Clause - Libnih - ไลบรารีที่มีน้ำหนักเบาของฟังก์ชั่นและโครงสร้าง
GPL-2.0-only - Libu - ห้องสมุดขนาดเล็กของยูทิลิตี้พื้นฐานรวมถึงการจัดสรรหน่วยความจำการจัดการสตริงและการบันทึก
BSD-3-Clause - PBL - ห้องสมุดสาธารณูปโภคขนาดใหญ่ที่มีโครงสร้างข้อมูลเหนือสิ่งอื่นใด
LGPL-2.1-or-later - Plibsys - ห้องสมุดระบบข้ามแพลตฟอร์ม C การพึ่งพาของบุคคลที่สามเป็นศูนย์ใช้เฉพาะการโทรระบบดั้งเดิม
MIT - Qlibc - ห้องสมุดที่เรียบง่ายและทรงพลังออกแบบมาเพื่อทดแทน Glib ในขณะที่มุ่งเน้นไปที่การมีขนาดเล็กและเบา
BSD-2-Clause - SC - ไลบรารีทั่วไปและโครงสร้างข้อมูลสำหรับ C.
MIT - TBOX - ไลบรารีหลายแพลตฟอร์มที่มีความสามารถจำนวนมาก
Apache-2.0 - PSPSDK - SDK โอเพ่นซอร์สสำหรับการพัฒนา PSP Homebrew ใบอนุญาตต่างๆ
การเขียนโปรแกรมเกม
เครื่องยนต์ห้องสมุดและสิ่งที่เป็นประโยชน์อื่น ๆ โดยเฉพาะสำหรับการสร้างเกม
- Allegro - Cross -Platform, การพัฒนาวิดีโอเกมและห้องสมุดมัลติมีเดีย
Zlib - AssetKit? 3D สินทรัพย์ผู้นำเข้า/ผู้ส่งออก/UTIL ไลบรารีตามข้อกำหนดของ Collada/GLTF
MIT - ASTERA - C99 Cross Platform 2D Game Library
MIT - cglm -? OpenGl OpenGL/GRAPHICS MATH (GLM) สำหรับ C.
MIT - Chipmunk2D - ห้องสมุดฟิสิกส์เกม 2D ที่รวดเร็วและมีน้ำหนักเบา
MIT - cmt -? C การผูก/wrappers สำหรับกรอบกราฟิกโลหะของ Apple
MIT - Corange-Game Engine ใน Pure C.
BSD-2-Clause - CSFML - การผูกมัดสำหรับ SFML
Zlib - Darkplaces - เครื่องยนต์ Quake2 รุ่นที่แก้ไขแล้ว
GPL-2.0-only - อีพ็อกซี่ - ไลบรารีสำหรับการจัดการฟังก์ชั่นการจัดการตัวชี้ OpenGL
MIT - ExenGine - 3D Game Engine ใน C99 พร้อมเทมเพลตเริ่มต้น
MIT - Flecs - ระบบส่วนประกอบเอนทิตีแบบมัลติเธรดที่เขียนขึ้นสำหรับ C89 & C99
MIT - Freecell Solver - ชุดของไลบรารีและโปรแกรมบรรทัดคำสั่งสำหรับการแก้ปัญหา Freecell โดยอัตโนมัติและบางตัวแปรที่คล้ายกันของ Solitaire การ์ด
MIT - FreeGlut - ทางเลือกสำหรับชุดเครื่องมือยูทิลิตี้ OpenGL อนุญาตให้สร้างและจัดการ Windows ด้วยบริบท OpenGL
X11 - GLFW - ไลบรารีหลายแพลตฟอร์มสำหรับการสร้าง Windows ด้วยบริบท OpenGL
Zlib - IOQUAKE3 - เครื่องยนต์ Quake3 เป็นอิสระในที่สุด
GPL-2.0-only - Kazmath - ห้องสมุดคณิตศาสตร์สำหรับเกม
BSD-2-Clause - Libao - ห้องสมุดเสียงข้ามแพลตฟอร์มพร้อมเอาต์พุตที่หลากหลาย
GPL-2.0-or-later - LIRTIC-ห้องสมุดเครือข่ายเกม C99 บริสุทธิ์สำหรับการสร้างโซลูชันการใช้งานแบบหลายแพลตฟอร์มแบบข้ามแพลตฟอร์มที่เรียบง่ายและสง่างาม
Apache-2.0 - MATHC - ไลบรารีคณิตศาสตร์สำหรับการเขียนโปรแกรม 2D และ 3D
ZLib - ORX-พกพา, น้ำหนักเบา, ปลั๊กอิน, ขับเคลื่อนด้วยข้อมูล, เครื่องยนต์เกม 2D ที่มุ่งเน้น
Zlib - Quake - quake engine
GPL-2.0-only - Quake2 - เครื่องยนต์ Quake2
GPL-2.0-only - Raylib-ห้องสมุดที่ง่ายและใช้งานง่ายเพื่อเรียนรู้การเขียนโปรแกรมวิดีโอเกม
Zlib - Retroarch - ส่วนหน้าอ้างอิงสำหรับ Libretro
GPL-3.0-only - SDL2-ไลบรารีข้ามแพลตฟอร์มที่ออกแบบมาเพื่อให้การเข้าถึงระดับต่ำไปยังเสียง, คีย์บอร์ด, เมาส์, จอยสติ๊กและฮาร์ดแวร์กราฟิกผ่าน OpenGL
Zlib - SDL-GPU-ห้องสมุดสำหรับกราฟิก 2D ที่มีประสิทธิภาพสูงและทันสมัย ขึ้นอยู่กับ SDL
MIT - SIGIL - ไลบรารีการรวมเสียงอินพุตและกราฟิก; ทางเลือกง่าย ๆ สำหรับห้องสมุดอื่น ๆ สำหรับการทำทุกสิ่งเหล่านั้น ใบอนุญาตต่าง ๆ โอเพ่นซอร์สทั้งหมด
- UASTAR - การใช้งาน A* น้อยที่สุด
ZLib
กราฟิก
การจัดการกราฟิกใน C; หากคุณต้องการสร้าง GUI ส่วนอินเทอร์เฟซผู้ใช้กราฟิกมีสิ่งที่คุณต้องการ
- AssetKit? 3D สินทรัพย์ผู้นำเข้า/ผู้ส่งออก/UTIL ไลบรารีตามข้อกำหนดของ Collada/GLTF
MIT - ห้องสมุดกราฟิก 2D CAIRO
LGPL-2.1-only หรือ MPL-1.1 - cmt -? C การผูก/wrappers สำหรับกรอบกราฟิกโลหะของ Apple
MIT - GIFLIB - ห้องสมุดสำหรับการอ่านและการเขียนภาพ GIF
MIT - กราฟีน - ชั้นข้อมูลกราฟิกบาง ๆ
MIT - Heman - ห้องสมุดเล็ก ๆ ของสาธารณูปโภคที่เกี่ยวข้องกับแผนที่ความสูงแผนที่ปกติฟิลด์ระยะทางและสิ่งที่คล้ายกัน
MIT - Libcaca - ASCII Renderer สำหรับอินเทอร์เฟซที่ใช้เทอร์มินัล
WTFPL - libgd - ไลบรารีสำหรับการสร้างภาพแบบไดนามิกโดยโปรแกรมเมอร์
MIT - libimagequant-ไลบรารีขนาดเล็กพกพาสำหรับการแปลงคุณภาพสูงของภาพ RGBA เป็นภาพสี 8 บิต
GPL-3.0-or-later - libjpeg -turbo - ไลบรารีที่เร็วขึ้นสำหรับการอ่านและเขียนไฟล์ JPEG ใบอนุญาตต่างๆ
- libpng - ห้องสมุดอ้างอิง PNG อย่างเป็นทางการ
Libpng - Liblsvg - ไลบรารีเพื่อแสดงไฟล์ SVG โดยใช้กรุงไคโร
LGPL-2.1-or-later - Libsixel - ห้องสมุดที่ใช้โปรโตคอล Sixel ช่วยให้กราฟิกที่สวยงามในเทอร์มินัลของคุณ
MIT - libspng - อินเทอร์เฟซที่ง่ายกว่าสำหรับการอ่านและเขียนไฟล์ PNG
BSD-2-Clause - libvips - ไลบรารีการประมวลผลภาพ
LGPL-2.1-or-later - libxmi - ไลบรารีฟังก์ชั่นสำหรับกราฟิกเวกเตอร์ 2D แรสเตอร์
GPL-3.0-or-later - Lightmapper - ไลบรารีไฟล์เดี่ยวสำหรับการอบ Lightmap โดยใช้ OpenGL Renderer ที่มีอยู่ โดเมนสาธารณะ
- CMS เล็ก ๆ น้อย ๆ - ระบบการจัดการสี มันให้การแปลงที่รวดเร็วระหว่างโปรไฟล์ ICC
MIT - MOZJPEG - ปรับปรุง JPEG Encoder
BSD-3-Clause - NANOVG - ไลบรารีการวาดภาพเวกเตอร์ 2D ต่อต้านการใช้งานที่อยู่ด้านบนของ OpenGL สำหรับ UI และการสร้างภาพข้อมูล
Zlib - OpenGL - มาตรฐานอุตสาหกรรมสำหรับกราฟิกประสิทธิภาพสูงโดยมีการผูก C ดั้งเดิม ใบอนุญาตต่างๆ
- Plutovg - ไลบรารีกราฟิกเวกเตอร์แบบสแตนด์อโลน 2D ใน C
MIT - Sail - ⛵ห้องสมุดถอดรหัสภาพขนาดเล็กและเร็วที่หายไปสำหรับมนุษย์ (ไม่ใช่สำหรับเครื่องจักร)
MIT
ส่วนต่อประสานผู้ใช้กราฟิก
ชุดเครื่องมือวิดเจ็ตหรือสิ่งที่หมายถึงการใช้ในลักษณะเดียวกันกับพวกเขา
- GTK+ - ชุดเครื่องมือวิดเจ็ตข้ามแพลตฟอร์ม
LGPL-2.1-only - IUP - ชุดเครื่องมือวิดเจ็ตข้ามแพลตฟอร์มอื่น
MIT - microui - ห้องสมุด UI แบบทันทีทันใดที่เขียนด้วย ANSI C.
MIT แบบพกพา - Nappgui - SDK มืออาชีพในการสร้างแอพพลิเคชั่นเดสก์ท็อปข้ามแพลตฟอร์มโดยใช้ C.
MIT - Nuklear - เล็ก, C89, ชุดเครื่องมือวิดเจ็ตหัวเดี่ยว โดเมนสาธารณะ
- TinyFileDialogs - ไลบรารีไฟล์เดี่ยวสำหรับกล่องโต้ตอบง่าย ๆ เข้ากันได้กับชุดเครื่องมือและ OSE อื่น ๆ อีกมากมาย
Zlib - TK - ชุดเครื่องมือวิดเจ็ตพื้นฐาน ส่วนหนึ่งของ TCL/TK
TCL - XFORMS Toolkit - ชุดเครื่องมือวิดเจ็ตที่ออกแบบมาสำหรับระบบ XWINDOW
LGPL-2.1-only - LVGL-GUI แบบฝังตัวพร้อมองค์ประกอบกราฟิกที่ใช้งานง่ายภาพที่สวยงามและรอยเท้าหน่วยความจำต่ำ
MIT - Luigi - ห้องสมุด GUI หัวเดี่ยวสำหรับ Win32, x11 และ Essence
MIT
การแฮม
การใช้งานฟังก์ชั่นแฮชเพื่อวัตถุประสงค์ ที่ไม่ใช่ crypto แฮชเข้ารหัสสามารถพบได้ในส่วน crypto
- Clhash - ห้องสมุดที่ใช้ฟังก์ชั่นการแฮชแฮชอย่างรวดเร็ว ใช้งานได้เฉพาะกับ Intel Haswell หรือใหม่กว่า
Apache-2.0 - Highwayhash - ฟังก์ชั่นแฮชที่ใช้งานง่าย, แข็งแกร่ง, ใช้ SIMD ยังมีการใช้งานของ Siphash (แม้ว่าจะช้ากว่า)
Apache-2.0 - Spookyhash - ฟังก์ชั่นแฮชที่รวดเร็วมาก
BSD-3-Clause - T1HA - Hash Fast Positive - ฟังก์ชั่นแฮชแบบพกพาและเร็ว
BSD-3-Clause - XXHASH - อัลกอริทึมการแฮชที่รวดเร็วมาก มาในพันธุ์ 32 และ 64 บิต
BSD-2-Clause
การเรียนรู้การอ้างอิงและการสอน
ทรัพยากรสำหรับการเรียนรู้การเขียนโปรแกรม C โดยทั่วไปหรือสิ่งที่มีประโยชน์เกี่ยวกับการเขียนโปรแกรม C
ทรัพยากรอ้างอิงออนไลน์
- เกณฑ์มาตรฐานของหน่วยจัดสรรหน่วยความจำที่ไม่มีล็อค
- C FAQ - comp.lang.c คำถามที่พบบ่อย
- การเปรียบเทียบการใช้งานไลบรารีมาตรฐาน C/POSIX สำหรับ Linux
- ร่างมาตรฐาน C89
- ร่างมาตรฐาน C99
- ร่างมาตรฐาน C11
- ค้นหาการจำลอง 64 บิตที่ดีที่สุด prng
- มาตรฐานการเข้ารหัส SEI CERT C
- tinyc.game - เกม C เล็ก ๆ ที่คุณสามารถรวบรวมและทำงานได้ทันที http://tinyc.games
MIT
แหล่งข้อมูลเริ่มต้นออนไลน์
- บทช่วยสอนเกี่ยวกับพอยน์เตอร์
- บทช่วยสอนเกี่ยวกับ makefiles แบบพกพา
- การสร้างโครงการ C
- C การเขียนโปรแกรม wikibook
- รู้เบื้องต้นเกี่ยวกับ `fun 'c
- เรียนรู้ C กับ GDB
- memcpy vs memmove
- การสอนการเขียนโปรแกรม Posix Threads (ลงวันที่เล็กน้อย แต่ส่วนใหญ่ยังคงถูกต้องและมีประโยชน์)
- การสอนการเขียนโปรแกรม GNU C (PDF ออนไลน์)
- เทมเพลตใน C
- โปรแกรมเมอร์ C ควรรู้เกี่ยวกับหน่วยความจำอะไร
- CodeForwin: เรียนรู้การเขียนโปรแกรม C, โครงสร้างข้อมูลแบบฝึกหัดและแบบฝึกหัดออนไลน์
- เรียนรู้ C: บทช่วยสอนการโต้ตอบแบบอินเทอร์แอคทีฟแบบโอเพนซอร์ซและโอเพ่นซอร์ส
- วิธีการเขียนโปรแกรมการผจญภัยข้อความใน C
ทรัพยากรระดับกลางออนไลน์
- 8 GDB กลอุบายที่คุณควรรู้
- 10 C99 กลอุบาย
- ทรัพยากรการสอน MPI ที่ครอบคลุม
- สร้างตัวแก้ไขข้อความของคุณเอง
- การดำน้ำเข้าสู่การเกิดขึ้นพร้อมกัน: ลองใช้ mutexes และอะตอมมิกส์
- การนับการอ้างอิงทั่วไป C
- วิธีการเขียน C Portable C โดยไม่ทำให้งานสร้างของคุณซับซ้อนขึ้น
- บทนำสู่ OpenMP (วิดีโอ)
- การสอน OpenMP (สำหรับมาตรฐาน OpenMP3)
- การสอน MPI
- C ที่ปรับขนาดได้ - การเขียนแบบกระจายขนาดใหญ่ C
- คุณสมบัติหรือเทคนิคที่ไม่รู้จักในภาษา C
- สิ่งที่โปรแกรมเมอร์ C ทุกคนควรรู้เกี่ยวกับพฤติกรรมที่ไม่ได้กำหนด
ทรัพยากรขั้นสูงออนไลน์
- metaprogramming ขั้นสูงใน C
- การสอนอย่างรวดเร็วเกี่ยวกับการใช้งานและการดีบัก Malloc, Free, Calloc และ Realloc
- แฮ็ค twiddling บิต
- การใช้งาน Smart Pointers สำหรับภาษาการเขียนโปรแกรม C
- ฟังก์ชั่นแบบอินไลน์ใน C
- Metaprogramming โครงสร้างการควบคุมที่กำหนดเองใน C
- การแก้ปัญหาการจัดเก็บชั่วคราวของแมโคร C
- มุมมืดบางส่วนของ C
- การเขียนการเพิ่มประสิทธิภาพรหัส C และ C ที่มีประสิทธิภาพ
- การรวบรวมชนิดข้อมูลพีชคณิตใน C99 บริสุทธิ์
หนังสืออ้างอิง
- C: คู่มืออ้างอิง 5E - หนังสืออ้างอิงฉบับเต็มสำหรับ C99
- C ในช่วงสั้น ๆ 2E - หนังสืออ้างอิงที่กระชับสำหรับ C11
- C Pocket Reference - หนังสืออ้างอิงที่กระชับสำหรับ C99
- ภาษาการเขียนโปรแกรม C 2e - หนังสือต้นฉบับเกี่ยวกับ C โดยผู้สร้าง
หนังสือเริ่มต้น
- C Primer Plus 6E - การสอนที่สมบูรณ์เกี่ยวกับการเขียนโปรแกรมใน C11
- การเขียนโปรแกรม C: วิธีการที่ทันสมัย - หนังสือที่ยอดเยี่ยมในการเรียนรู้พื้นฐานของ C.
- หัวแรก C - 'head -first style book สำหรับการเรียนรู้ C.
หนังสือกลาง
- ศตวรรษที่ 21 C - หนังสือการเขียนโปรแกรม ที่สอง ที่ดีใน C.
- การทำความเข้าใจและใช้พอยน์เตอร์ C - ทรัพยากรเชิงลึกบนพอยน์เตอร์ใน C
- Zeromq - จองสำหรับการใช้ Zeromq กับ C
หนังสือขั้นสูง
- การเขียนโปรแกรมผู้เชี่ยวชาญ C: Deep C Secrets - น่าสนใจในเชิงลึกและความบันเทิงดูที่อวัยวะภายในของ C.
- Modern C, รุ่นที่สาม: ครอบคลุมมาตรฐาน C23 - ใน Modern C, รุ่นที่สามคุณจะได้เรียนรู้ที่จะควบคุมศักยภาพอย่างเต็มที่ของ C โดยใช้เครื่องมือและเทคนิคล่าสุด
เล็กซิงและแยกวิเคราะห์
ห้องสมุดโดยเฉพาะสำหรับการวิเคราะห์คำศัพท์ (หรือเล็กซิง) และการวิเคราะห์วากยสัมพันธ์ (หรือการแยกวิเคราะห์)
- Flex - Fast Lexical Analyzer Generator
BSD-2-Clause - GNU Bison-เครื่องกำเนิดไฟฟ้าแบบแยกวิเคราะห์ทั่วไปที่แปลงไวยากรณ์ที่ไม่มีบริบทที่มีคำอธิบายประกอบเป็นช่วงของตัวแยกวิเคราะห์
GPL-3.0-or-later - Hammer - ตัวแยกวิเคราะห์ combinators สำหรับรูปแบบไบนารี
GPL-2.0-only - MPC - Library Combinator Parser
BSD-2-Clause - นกฮูก - เครื่องตัดวิเคราะห์สำหรับภาษา pushdown อย่างเห็นได้ชัด
MIT - Re2C - เครื่องกำเนิดไฟฟ้า Lexer ผลิต Lexers ที่รวดเร็วพร้อมการเข้าถึงภายใน โดเมนสาธารณะ
การจัดการหน่วยความจำ
ไม่ว่าจะเป็นคอลเล็กชั่น Malloc ที่แตกต่างเร็วขึ้นหรือเก็บขยะทันทีสิ่งที่เกี่ยวข้องกับการจัดการหน่วยความจำ C อาศัยอยู่ที่นี่
- Boehm GC - การรวบรวมขยะสำหรับ C. ใบอนุญาตต่าง ๆ , โอเพ่นซอร์สทั้งหมด
- การใช้งาน Jemalloc - Malloc ที่เน้นการหลีกเลี่ยงการกระจายตัวของการกระจายตัวและการสนับสนุนพร้อมกันที่ปรับขนาดได้
BSD-2-Clause - การจัดสรรหน่วยความจำแบบไม่มีล็อค - ตัวจัดสรรหน่วยความจำที่มีประสิทธิภาพ
GPL-3.0-or-later - libcsptr - สมาร์ทพอยน์เตอร์สำหรับ C.
MIT - RPMALLOC-การแช่เธรด, หน่วยความจำที่รวดเร็ว, จัดเรียงตามธรรมชาติบนขอบเขต 32 ไบต์ โดเมนสาธารณะ
- TALLOC - ระบบสระว่ายน้ำหน่วยความจำที่นับอ้างอิงพร้อมการทำลายล้าง
LGPL-3.0-or-later - TLSF - การจัดสรรแบบแยกสองระดับ อเนกประสงค์อเนกประสงค์ที่จัดสรรหน่วยความจำแบบไดนามิกที่ออกแบบมาเพื่อตอบสนองความต้องการแบบเรียลไทม์ การใช้งานที่ทันสมัย
BSD-3-Clause
มัลติมีเดีย
- Aubio - ห้องสมุดสำหรับการวิเคราะห์เสียงและเพลง
GPL-3.0-or-later - FFMPEG - โซลูชันที่สมบูรณ์แบบข้ามแพลตฟอร์มเพื่อบันทึกแปลงและสตรีมเสียงและวิดีโอ
LGPL-2.1-or-later - Gstreamer - เฟรมเวิร์กสำหรับสื่อเสียงและภาพ
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 - ตัวถอดรหัสภาพและตัวเข้ารหัส PNG ง่าย ๆ ที่ไม่ต้องการการพึ่งพาอื่น ๆ
BSD-3-Clause - MINIMP3 - Lightweight MP3 Decoder Library Header Header
CC0-1.0 - SoundPipe - ห้องสมุด DSP เพลงเบา
MIT
เครือข่ายและอินเทอร์เน็ต
เครือข่ายระดับต่ำและสิ่งที่เกี่ยวข้องกับอินเทอร์เน็ต หากคุณต้องการสิ่งที่ครอบคลุมและระดับสูงมากขึ้นคุณอาจต้องการส่วนเฟรมเวิร์กเว็บ
- ASNLC - คอมไพเลอร์ของข้อกำหนด ASN.1 ลงในซอร์สโค้ด C
BSD-2-Clause - CHL - C Hypertext Library - ไลบรารีสำหรับการเขียนเว็บแอปพลิเคชันใน C.
GPL-3.0-only - CZMQ - การผูกระดับสูงสำหรับ Zeromq
MPL-2.0 - Dyad.c - Lightweight, Easy, Asynchronous Networking Library
MIT - GNU ADNS-ขั้นสูงการใช้งานง่ายและใช้งานง่ายห้องสมุดและยูทิลิตี้
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 - Mail Library ให้เครือข่ายที่มีประสิทธิภาพสำหรับ IMAP, SMTP, POP และ NNTP
BSD-3-Clause - Libev - ยังมีอีกวงเหตุการณ์อื่น
BSD-2-Clause - Libevent - การเปลี่ยนลูปเหตุการณ์สำหรับเซิร์ฟเวอร์เครือข่าย
BSD-3-Clause - Libhttpd - ไลบรารีเพื่อเพิ่มความสามารถของเว็บเซิร์ฟเวอร์พื้นฐานในแอปพลิเคชันหรืออุปกรณ์ฝังตัว
GPL-2.0-only - Libhv - ห้องสมุดลูปเหตุการณ์ข้ามแพลตฟอร์ม
BSD-3-Clause - libidn - การดำเนินการตามข้อกำหนดของ StringPrep, Punycode และ IDNA
GPL-3.0-or-later - libmicrohttpd - ไลบรารีขนาดเล็กที่ทำให้ง่ายต่อการเรียกใช้เซิร์ฟเวอร์ HTTP เป็นส่วนหนึ่งของแอปพลิเคชันอื่น
LGPL-2.1-or-later - libnl -
libnl เป็นชุดของห้องสมุดเพื่อพิสูจน์ APIs ไปยังโปรโตคอล NetLink (แทนที่ IOCTL) การใช้งานหลักคือการสื่อสารกับเคอร์เนล Linux เพื่อแก้ไขสถานะเครือข่าย (อินเทอร์เฟซการกำหนดเส้นทาง ฯลฯ ... ) LGPL-2.1-only - Libonion - ไลบรารีเซิร์ฟเวอร์ HTTP ออกแบบมาให้ใช้งานง่าย
Apache-2.0 - libpcap - API มอบกลไกการจับแพ็คเก็ตเคอร์เนลต่างๆ
BSD-3-Clause - Libquickmail - ห้องสมุดมีวัตถุประสงค์เพื่อให้นักพัฒนามีวิธีส่งอีเมลจากแอปพลิเคชันของพวกเขา รองรับผู้รับและ CC/BCC หลายตัวและสิ่งที่แนบมาโดยไม่มีการ จำกัด ขนาด
GPL-3.0-or-later - Libsagui - ห้องสมุดสำหรับเซิร์ฟเวอร์ HTTP ข้ามแพลตฟอร์ม
LGPL-3.0-or-later - Libuhttpd - ไลบรารีเซิร์ฟเวอร์ HTTP ที่มีความยืดหยุ่นและมีน้ำหนักเบามากและแบบอะซิงโครนัสตาม LIBEV และ HTTP -PARSER สำหรับ Linux แบบฝัง
MIT - libvncserver - ไลบรารีข้ามแพลตฟอร์มเพื่อใช้งานเซิร์ฟเวอร์ VNC และ/หรือฟังก์ชันการทำงานของไคลเอนต์
GPL-2.0-or-later - Libwebsock-ห้องสมุดเว็บซ็อกเก็ตเว็บที่ใช้งานง่ายและมีประสิทธิภาพ
LGPL-3.0-only - LibzMQ - Core Zeromq Library ห้องสมุดการส่งข้อความแบบอะซิงโครนัสประสิทธิภาพสูงโดยมีวัตถุประสงค์เพื่อใช้ในแอปพลิเคชันแบบกระจายหรือพร้อมกัน C API (Backend C ++)
GPL-3.0-or-later พร้อมข้อยกเว้นการเชื่อมโยงแบบคงที่ - LWAN - เซิร์ฟเวอร์ HTTP ที่มีประสิทธิภาพสูงและปรับขนาดได้
GPL-2.0-only - Mongoose - เว็บเซิร์ฟเวอร์ฝังตัว
GPL-2.0-only - MQTT -C - ไคลเอนต์ MQTT C แบบพกพาสำหรับระบบฝังตัวและพีซีเหมือนกัน
MIT - Nanomsg - การดำเนินการตาม C -based ของ Zeromq
MIT - NNG - Nanomsg -next -Generation - การส่งข้อความแบบไม่มีน้ำหนักเบา
MIT - การใช้งาน OSIP - SIP โดยไม่ต้องพึ่งพาเพิ่มเติม
LGPL-2.1-or-later - เครื่องยนต์ HTTP แบบอะซิงโครนัสสำหรับโครงการ C/C ++
MIT - Socket99 - C99 wrapper สำหรับ BSD Sockets API
ISC - TWITC - ห้องสมุดมินิสำหรับการโต้ตอบกับ Twitter OAuth API
MIT - Uriparser - RFC อย่างเคร่งครัด 3986 การแยกวิเคราะห์ URI และการจัดการห้องสมุด
BSD-3-Clause - WSLAY - Library WebSocket ใช้เวอร์ชัน 13 ของโปรโตคอล WebSocket ตามที่อธิบายไว้ใน RFC 6455.
MIT - Zyre-เฟรมเวิร์กสำหรับแอพพลิเคชั่นเพียร์ทูเพียร์
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 Build พยายามที่จะใกล้เคียงกับ C89/C90 ที่สอดคล้องกับการพกพา
MIT - คิวบา - ห้องสมุดสำหรับการรวมตัวเลขหลายมิติ
LGPL-3.0-only - FFT-C-การแปลงฟูริเยร์ประสิทธิภาพสูงจาก FFTPack ของ NetLib; ห่อด้วยรูปแบบที่ใช้งานง่าย
MIT - FFTW - การแปลงฟูริเยร์ที่เร็วที่สุดในตะวันตก; กิจวัตรการแปลงฟูริเยร์ที่เร็วที่สุด
GPL-2.0-or-later - Flint - Fast Library สำหรับทฤษฎีจำนวน; ห้องสมุดที่รองรับเลขคณิตที่มีตัวเลขพหุนามอนุกรมพลังงานและเมทริกซ์และอื่น ๆ
GPL-2.0-or-later - GLPK - ชุดโปรแกรมการเขียนโปรแกรมเชิงเส้น GNU; 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. มิกซ์
- libxml2 - Standards-compliant, portable XML parser. มิกซ์
- xml - Simple, low-memory-use XML parser / tokenizer.
MIT
YAML
- libYAML - YAML 1.1 parser and emitter.
MIT
Signal Processing
- libsigrok - signal analysis software suite that supports various device types (such as logic analyzers, oscilloscopes, multimeters, and more). [
GPL ][GPL]
Testing
- CHEAT - Simple unit testing framework.
BSD-2-Clause - Check - Unit testing framework.
LGPL-2.1-only - ciut - A modern minimal hassle unit test framework.
MIT - clar - Clear and simple unit testing framework.
MIT - CMock - Mock/stub generator.
MIT - cmocka - Unit testing framework with support for mock objects.
Apache-2.0 - Criterion - KISS, non-intrusive test framework.
MIT - ctest - Yet another unit testing framework.
Apache-2.0 - CUnit - Another unit testing framework.
LGPL-2.1-or-later - greatest - Unit testing library in one file, with no memory allocation.
ISC - minctest - Unit testing microlibrary.
BSD-3-Clause - munit - Small unit testing framework.
MIT - Nala - A test framework for C projects.
MIT - Rexo - Framework for C89/C++ featuring automatic registration of tests and a polished API.
Unlicense - Tau - A Micro Unit testing framework for C/C++ (~1k lines of code). Includes a rich set of assertion macros, supports automatic test registration and can output to multiple formats, like the TAP format or JUnit XML. Supported on Linux, macOS, FreeBSD, and Windows.
MIT - theft - Property-based testing (similar to Quickcheck).
MIT - Unity - Simple unit testing framework.
MIT - utest - Single-header unit testing library.
Unlicense
Text Editor Extensions
While practically any decent programmer's text editor supports C, there are some extensions that make it more pleasant. These are labelled by editor.
- CCompletion - Notepad++ autocompletion plugin. Works with all identifiers recognized by Ctags. This is a download link.
GPL-2.0-or-later - CEDET - Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in.
GPL-3.0-or-later - Flycheck - Modern syntax checking for Emacs. For C, it can use either GCC or Clang as a back-end.
GPL-3.0-or-later - Neomake - Async :make and linting framework for Neovim/Vim.
MIT - Syntastic - Syntax checking and linting for Vim.
WTFPL - YASnippet - Emacs code template system, with C templates for common snippets.
GPL-3.0-or-later - YouCompleteMe - Code completion engine for Vim.
GPL-3.0-only
เครื่องมือ
Useful programs to help you write and debug C code which are not editors, libraries or compilers.
- Artistic Style - Fast and small automatic source code formatter that supports C.
LGPL-3.0-only - address-sanitizer - Fast memory error detector.
Apache-2.0 - bcc - A byte array generator to import binary files directy from C in the spirit of xxd.
ISC - c - Compile and execute C "scripts" in one go on the command line. Also has shebang support.
MIT - c99sh - Run C files using hash-bang.
BSD-2-Clause - cdecl - Online service to translate C declarations into English and vice versa. Public domain.
- cinclude2dot - Graphs include dependencies in a project using Graphviz. GPL-1.0-or-later or
GPL-2.0-or-later or GPL-3.0-or-later - ClangCheck - Static analysis tool, designed to work with Clang.
NCSA - conan.io - Something of a package manager for C.
MIT . - Cppcheck - Static analysis tool. Despite the name, works well with C.
GPL-3.0-or-later - Glade - RAD tool to enable quick development of GTK+ GUIs.
GPL-2.0-only - GMSL - GNU Make Standard Library; a collection of additional functionality for GNU Make.
BSD-3-Clause - GNU Global - Source code tagging tool.
GPL-3.0-only - GPP - General-purpose preprocessor. More versatile than the C preprocessor, but more flexible than m4.
LGPL-3.0-or-later - Highlight - Converts source code to formatted text with nice highlighting.
GPL-3.0-only - include-what-you-use - Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it).
NCSA - incbin - Include binary files in your C/C++ applications with ease
Unlicense - indent - Formats C source code automatically to make it easier to read. Also converts from one style of source to another.
GPL-3.0-or-later - SMACK - Modular software verification toolchain and a self-contained software verifier. Currently only works with programs compiled using Clang.
MIT - unifdef - Removes #ifdef and #if directives with their delimited text without touching any other part of the file.
BSD-3-Clause or BSD-2-Clause
Utilities
A 'catch-all' category for anything that doesn't fit well anywhere else.
- ApeTagLibs - Library for working with APEv2 tags.
MIT - argparse - Command-line argument parsing library, inspired by Python's argparse module.
MIT - attr - Commands for manipulating filesystem extended attributes.
GPL-2.0-or-later - bfd - Library for manipulating binary object files. Part of GNU binutils.
GPL-3.0-or-later - Caffeine - Library for building daemons and services for Linux and FreeBSD systems.
LGPL-2.1-or-later - CException - Implementation of exceptions.
MIT - CommonMark - Implementation of the CommonMark spec.
- cosmopolitan - fast portable static native textmode containers (build C programs for LinuxMacWindows in one go) Variety of licenses, all open source.
- cpu_features - Get CPU features at runtime.
Apache-2.0 . - CRIU - Checkpoint/Restore In Userspace; a software tool (with a C API) for 'freezing' a running application to disk, then restoring it.
GPL-2.0-only or LGPL-2.1-only - D-Bus - Simple way for applications to talk to one another.
AFL-2.1 or GPL-2.0-or-later - Discount - Simple implementation of a Markdown parser.
BSD-3-Clause - dlx - Implementation of Knuth's Algorithm X, with example solvers.
GPL-3.0-or-later - docopt.c - Implementation of a command-line option parser.
MIT - dyncall - Another foreign function interface library.
MIT - GNU FreeIPMI - In-band and out-of-band IPMI implementation.
GPL-3.0-only - GNU gperf - Perfect hash function generator, given a list of strings. Outputs C code.
GPL-3.0-or-later - GNU Libffcall - Collection of libraries for building foreign function interfaces.
GPL-3.0-or-later - Hoedown - Fully standards-compliant, extension-supporting, UTF-8 aware, fast Markdown parser.
MIT - Kitsune - Efficient, general-purpose framework for dynamic software updating.
LGPL-3.0-or-later - libCello - Library introducing higher-level programming to C.
BSD-3-Clause - libcmark - Library for parsing the CommonMark dialect of Markdown.
BSD-2-Clause - libcoap - Implementation of the Constrained Application Protocol.
GPL-2.0-or-later or BSD-2-Clause - libcox - Library which permits cross-platform system calls and standard utilities across different operating systems.
BSD-2-Clause - libffi - Portable foreign-function interface library.
MIT - libgeohash - Pure C implementation of the Geohash algorithm.
BSD-3-Clause - libgit2 - Portable implementation of the Git core methods, provided as a re-entrant linkable library. Custom license.
- libgss - Generic Security Service.
GPL-3.0-or-later - libimobiledevice - Cross-platform protocol library to communicate with iThings.
LGPL-2.1-or-later - libnfc - Platform-independent Near-Field Communication library.
LGPL-3.0-only - libpostal - Library for parsing and normalization of street addresses around the world. Powered by statistical NLP and open geo data.
MIT - libtrading - Implementation of network protocols for communicating with exchanges, dark pools and other trading venues. Supports FIX, FIX/FAST and many proprietary protocols.
BSD-2-Clause - libusb - Provides generic access to USB devices.
LGPL-2.1-or-later - libuv - Cross-platform asynchronous I/O.
MIT - libvldmail - Your friendly email validation library. No external dependencies (not even regexps).
WTFPL - linenoise - Small, self-contained alternative to readline and libedit.
BSD-2-Clause - libXDGdirs - An implementation of XDG Base Directory Specification
MIT - MegaMimes - Library for getting the MIME types of a file.
MIT - ncurses - Coloured terminal UI library.
MIT - netbsd-curses - Simplified and small version of ncurses, with the same interface.
BSD-3-Clause - nope.c - Ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers).
GPL-2.0-only - obj.h - A single-header supports OOP in pure C.
MIT - parg - A single-file reimplementation of
getopt with better defaults. CC0-1.0 - pbc - Protocol buffers library.
MIT - progressbar - Easy-to-use library for displaying text progress bars.
BSD-3-Clause - rabbitmq-c - Client library for RabbitMQ.
MIT - Ragel - DSL for state machines that compiles to C.
GPL-2.0-only - rmw - safe-remove utility for the command line that can purge items from your waste directories after x number of days.
GPL-3.0-or-later - Rogueutil - Cross-platform library for creating text-based user interfaces (TUI)
Apache-2.0 - sort - Collection of sorting routines, which type-specialize at compile-time with a user-defined type.
MIT - termbox - Library for writing text-based interfaces.
MIT - tinyexpr - Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions.
BSD-3-Clause - tm - ⏱ Timer and Timeline Utils for C.
MIT - Tulip Indicators - Library of functions for technical analysis of financial data.
LGPL-3.0-or-later - whereami - One-file library for locating the current executable on the file system.
WTFPL - XLSX I/O - Cross-platform library for reading and writing .xlsx files.
MIT - xlsx_drone - Fast Microsoft Excel's *.xlsx reader.
MIT - zlog - Reliable, pure C logging library.
LGPL-2.1-only - zproto - Protocol framework for ZeroMQ.
MIT - Metalang99 - Full-blown preprocessor metaprogramming.
MIT - Datatype99 - Algebraic data types for C99.
MIT - EasyLogger - An ultra-lightweight, high-performance C/C++ log library.
MIT
Web Frameworks
Comprehensive and integrated solutions for building the next brilliant web application in C.
- Concord - A Discord API wrapper library written in C.
MIT - facil.io - Mini-framework for web applications. Includes a fast HTTP and Websocket server, and also supports custom protocols.
MIT - kcgi - CGI and FastCGI library for C
ISC . - KLone - Fully featured, multi-platform, web application development framework, targeted especially at embedded systems and appliances.
BSD-3-Clause - Kore - Easy-to-use web application framework for writing scalable web APIs in C.
ISC
Windows Environments
Technologies designed to bring Windows into the 21st century with respect to support for C.
- Cygwin - Designed to emulate a POSIX-compatible environment extensively under Windows. Various licenses, all open source.
- MinGW-w64 - Minimalist environment for C development on Windows with 64 bit support. Various licenses, all open source.
- MSYS2 - Minimal SYStem 2; aims to provide support for a POSIX environment on Windows, with a package manager based on Arch Linux's pacman. Packages have individual licenses, otherwise, as MinGW and Cygwin.