굉장한 c
C 좋은 물건의 선별 된 목록. 이 목록에는 오픈 소스 코드 (링크 된 오픈 소스 정의에 의해 정의 된 대로 )와 물리적 자원에 대해 사악하지 않은 판매자가 포함됩니다.
이것은 Creative Commons-Attribution-Sharealike 라이센스, 버전 4 (SPDX Code CC-BY-SA-4.0 )에 따라 릴리스됩니다. 라이센스 파일에서 텍스트를 찾을 수 있습니다.
중요한 참고 사항 : 이 프로젝트는 C ++와 관련된 내용을 색인 하지 않습니다 . 순수한 C 물건 만 고려됩니다.
기고자에 대한 참고 사항 : 풀 요청을하려면 Contration.Md를 먼저 읽으십시오.
내용물
- 일체 포함
- 벤치마킹
- 빌드 시스템
- 컴파일러
- 압축
- 동시성과 병렬성
- 암호화
- 데이터 베이스
- 데이터 구조
- 디버깅
- 문서 생성
- 편집자
- 임베드 가능한 스크립팅 엔진
- 프레임 워크
- 게임 프로그래밍
- 제도법
- 그래픽 사용자 인터페이스
- 해싱
- 학습, 참조 및 튜토리얼
- 온라인 참조 리소스
- 초보자 자원 온라인
- 온라인 중간 자원
- 온라인 고급 리소스
- 참고서
- 초보자 책
- 중간 책
- 고급 서적
- 렉싱 및 파싱
- 메모리 관리
- 멀티미디어
- 네트워킹 및 인터넷
- 수치
- 프로파일 링
- 리그 즈
- 직렬화
- 소스 코드 수집
- 표준 라이브러리
- 문자열 조작
- 구조화 된 파일 처리
- 테스트
- 텍스트 편집기 확장
- 도구
- 유용
- 웹 프레임 워크
- Windows 환경
일체 포함
컴퓨터 비전, 신경망, 기계 학습 및 기타 유사한 것들. 기본적으로 대학이 AI라고 부르면 여기에 살고 있습니다.
- CCV -C 기반/캐시/핵심 컴퓨터 비전 라이브러리; 현대 컴퓨터 비전.
BSD-3-Clause - 크라늄 - 휴대용, 헤더 전용 ANN 라이브러리 C99.
MIT - FANN- 빠른 인공 신경 네트워크 라이브러리; 신경망의 구현.
GPL-2.0-only - GENANN- 추가 의존성없이 C89의 단순한 ANN.
Zlib - 칸 - 2 파일 앤 도서관.
MIT - Libdeep- 딥 러닝 라이브러리.
BSD-3-Clause - M2CGEN- 고전적인 ML 모델을 트랜스 파일로 전환하는 CLI 도구.
MIT - 잔디 - 내장 된 컴퓨터 비전 및 기계 학습 라이브러리.
GPL-3.0-only
벤치마킹
다양한 칩/시스템 아키텍처에서 다양한 서브 시스템의 성능을 비교합니다.
- B63- C.
Apache-2.0 의 경량 마이크로 벤치 마킹 도구
빌드 시스템
C의 프로젝트의 건물 및 테스트를 자동화하는 도구
- AutoTools- GNU 빌드 시스템 (Automake, Autoconf, Libtool ...)으로도 알려진 AutoTools는 가장 널리 사용되는 빌드 시스템 (구성 및 구성) 중 하나입니다. GPL-1.0 또는 LATER
- Autotools 프로젝트 골격 - 새로운 프로젝트를 신속하게 부트 스트랩하기위한 간단한 자동 툴 스켈레톤 (템플릿).
BSD-2-Clause - CMAKE- 소프트웨어를 구축, 포장 및 테스트하도록 설계된 도구 크로스 플랫폼 제품군.
BSD-3-Clause - GNU Make- 프로그램의 실행 파일 생성 및 기타 비 소스 파일을 제어하는 도구.
GPL-3.0-or-later - Meson- 매우 빠르고 사용자 친화적 인 빌드 시스템. 닌자를 기반으로합니다.
Apache-2.0 - Premake- 소프트웨어 프로젝트의 스크립트 정의를 읽고이를 사용하여 Visual Studio 및 GNU Make를위한 프로젝트 파일을 생성하는 데 사용하는 명령 줄 유틸리티. 다른 목표도 진행 중입니다.
BSD-3-Clause - 스콘 - 파이썬을 사용한 소프트웨어 건설 도구.
MIT - Xmake- 크로스 플랫폼 빌드 유틸리티.
Apache-2.0 - ZPROJECT- 프로젝트 생성기 및 빌드 시스템 지원 도구.
MPL-2.0
컴파일러
컴파일러 및 컴파일러 및 컴파일 관련 툴링.
- CCACHE- 재 컴파일 속도를 높이도록 설계된 컴파일러 캐시.
GPL-3.0-or-later - Clang- LLVM 용 컴파일러. C11을 지원합니다.
NCSA - CPROC- QBE를 백엔드로 사용하는 C11 컴파일러.
ISC - DIRSCC- 여러 시스템에 빌드를 배포 할 수있는 프로그램.
GPL-2.0-or-later - 회사 - 컴파일러에 사용하기에 적합한 그래프 기반 중간 표현, 최적화 및 어셈블리 코드 생성을 제공하는 라이브러리. 동일한 라이센스로 예제 C 프론트 엔드가 제공됩니다.
LGPL-2.1-only - GCC- 컴파일러 세트의 일부로 C 컴파일러를 제공합니다. C11을 지원합니다.
GPL-3.0-or-later - PCC- 유서 깊은 컴파일러. C99를 지원합니다. 다양한 라이센스, 모든 오픈 소스.
압축
- BLOSC- 매우 빠르고 멀티 스레드, 메타 코압기 라이브러리. 다양한 라이센스, 모든 오픈 소스.
- Brotli- 일반 목적 무손실 압축 알고리즘 라이브러리. Deflate와 비슷한 속도가 있지만 압축 비율이 훨씬 높습니다.
MIT . - Clzip -C 버전의 고품질 데이터 압축기 LZIP (LZMA 구현).
GPL-2.0-or-later - CROARING -C ROARING BITMAPS 구현.
Apache-2.0 - FinitestateEntropy- 현대 CPU에 최적화 된 2 개의 고효율 압축 코덱.
BSD-2-Clause - 밀도 - 초고속 압축 라이브러리.
BSD-3-Clause - HeatShrink- 임베디드 및 실시간 시스템을위한 데이터 압축/감압 라이브러리.
ISC - FAST_ZLIB- 개선 된 Zlib.
BSD-3-Clause - FASTLZ- 번개가 빠른 무손실 압축 라이브러리 (LZ77 유형). ARM Cortex-M 패밀리와 같은 작은 대상에 배치됩니다. 소스 코드는 프로젝트 (H/C 파일 쌍)에 직접 배치 될 수 있으며 동적 메모리 할당이 없습니다.
MIT - 허프 맨 퍼프 - 최소 허프만 인코더 및 디코더. 공개 도메인.
- libzip -c zip 아카이브를 읽고, 생성 및 수정하기위한 라이브러리.
BSD-3-Clause - libbzip2- 특허가없는 고품질 데이터 압축 라이브러리.
BSD-4-Clause - 도마뱀 - 이전 LZ5; 빠른 감압을 갖는 효율적인 압축기. 감압 속도는 1000MB/s 이상보다 빠르게 ZIP 및 Zlib와 비교할 수있는 압축 비율을 달성합니다.
BSD-2-Clause - LZ4- 매우 빠른 압축 알고리즘을위한 라이브러리.
BSD-2-Clause - LZO- 빠른 데이터 압축 라이브러리.
GPL-2.0-or-later - PIXZ- 병렬, 인덱스 된 XZ 압축기.
BSD-2-Clause - Shoco- 작은 텍스트 문자열의 압축기.
MIT - SIMDCOMP- 이진 패킹을 사용한 정수 목록을 압축하기위한 간단한 라이브러리. x86에서 SIMD 지침을 사용합니다.
BSD-3-Clause - SMAZ- 효율적인 문자열 압축 라이브러리.
BSD-3-Clause - 스쿼시 - 압축 추상화 라이브러리, 일부 유틸리티가 완성됩니다.
MIT - Turbopfor- 가장 빠른 정수 압축.
GPL-2.0-or-later - Turborle- 가장 효율적인 런 길이 인코딩.
GPL-2.0-or-later - 지퍼 - 정말 작은 지퍼 아카이브 처리 라이브러리.
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- 빠르고 가벼운 C 비대칭 코 루틴 라이브러리.
Apache-2.0 - LibConcurrent- C11 용 코 루틴을 사용하는 동시 프로그래밍 라이브러리.
BSD-3-Clause - LIBCSP- 고성능 동시성 C 라이브러리 CSP 모델의 영향을받습니다.
MIT - Libdill- 구조화 된 동시 프로그래밍을 쉽게 만드는 라이브러리.
MIT - LIBHL- 다양한 데이터 구조를 관리하기 위해 스레드 - 안전 API를 구현하는 라이브러리. 또한 동시적이고 잠긴 프로그래밍을위한 일부 지원 기능 및 구조를 제공합니다.
LGPL-3.0-only - Liburcu- 데이터 동기화 라이브러리, 코어 수와 선형으로 스케일링됩니다.
LGPL-2.1-or-later - Mill- 이동 스타일 동시성.
MIT - OCLKIT- 2 파일의 오펜 클래퍼.
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 스레드 API의 휴대용, 작은 구현.
Zlib
암호화
잘 알려진 암호화 알고리즘 또는 프로토콜의 대부분 라이브러리 구현.
- GNU SASL- 간단한 인증 및 보안 계층의 구현 및 몇 가지 일반적인 SASL 메커니즘.
GPL-3.0-or-later - GNUTLS- 보안 통신 라이브러리, SSL, TLS 및 DTL 구현.
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- Multiprecision 정수 및 합리적인 산술 암호화 라이브러리; 타원 곡선 암호화를위한 SDK.
AGPL-3.0-or-later - 레터 - 암호화 및 보안과 관련된 해시 기능, 암호, 도구, 라이브러리 및 자료 모음. 공개 도메인.
- S2N -C99 TLS/SSL 프로토콜의 구현은 간단하고 빠르며 보안을 우선 순위로 설계했습니다.
Apache-2.0 - Sphlib- 여러 암호화 기능을 포함하여 다양한 해시 기능의 구현 세트.
MIT - Trezor -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- 가벼운 데이터베이스 라이브러리, 전적으로 메인 메모리에서 작동합니다.
GPL-3.0-or-later - FlashDB- 키 값 및 시계열 데이터를 지원하는 초경량 데이터베이스.
Apache-2.0 - TDENGINE- 고성능, 클라우드 네이티브 시점 데이터베이스.
AGPL-3.0-only
데이터 구조
- C-Macro-Collections- 매크로를 사용하여 간단하고 일반적인 데이터 구조를 생성합니다.
MIT - CLIST- 단순하고 가벼운 동적 배열 구현.
BSD-2-Clause - COLLECTIONS -C- 일반 데이터 구조의 라이브러리.
LGPL-3.0-or-later - DS- 공통 데이터 구조 및 알고리즘.
MIT - igraph- 그래프 처리 라이브러리.
GPL-2.0-or-later - KDTREE- KD -Tree와 함께 일하기위한 간단한 도서관.
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- 일반적인 라이브러리, typesafe c 컨테이너. 헤더 전용으로 구현되었습니다.
BSD-2-Clause - Offbrand- 일반적인 참조 카운트 데이터 구조 수집.
MIT - PACKEDARRARE- 원하는 폭의 단단히 포장 된 부호없는 정수의 임의 액세스 배열. 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 - 디버그 - 더 쉬운 'printf 디버깅'을위한 원 헤더 라이브러리.
MIT - ESBMC- 효율적인 SMT 기반 경계 모델 검사기; 단일 및 멀티 스레드 프로그램, 사용자 어설 션, 오버플로 및 포인터/메모리 안전을 검증하기위한 도구.
Apache-2.0 - GDB -GNU 프로젝트 디버거.
GPL-3.0-or-later - LLDB -LLVM 디버거.
NCSA - RR- 결정 론적 디버깅을 허용하기 위해 비 결정적 처형을 기록하는 디버거.
BSD-2-Clause - Valgrind- 누출 검사기를 포함한 다양한 동적 분석 도구.
GPL-2.0-only
문서 생성
- CXREF- 라텍스, HTML, RTF 또는 SGML에서 문서를 생성합니다.
GPL-2.0-only - Doconce- 다양한 형식을 생성하는 데 사용할 수있는 적당히 태그가 지정된 마크 업 언어.
BSD-3-Clause - doxygen- 주석이 달린 소스에서 문서를 생성하기위한 임신 표준 도구. 광범위한 형식을 생성 할 수 있습니다.
GPL-2.0-only
편집자
Fancier, 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- 휴대 성 및 소형 풋 프린트
MIT 중점을 둔 임베드 가능한 JavaScript 엔진. - Metacall -Nodejs, JavaScript, Typescrip, Python, Ruby, C#, WASM, Java, Cobol 등을 지원하는 크로스 플랫폼 Polyglot 런타임.
Apache-2.0
프레임 워크
'현대적인'표준 라이브러리에 대한 데이터 구조 및 기타 물건을 제공하는 큰 라이브러리.
- APR- APACHE 휴대용 런타임; 크로스 플랫폼 유틸리티 기능의 다른 라이브러리.
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- 크로스 플랫폼 시스템 C 라이브러리. 제로 타사 종속성은 기본 시스템 호출 만 사용합니다.
MIT - QLIBC- 단순하고 강력한 라이브러리는 작고 가벼운 것에 초점을 맞추면서 Glib의 대체품으로 설계되었습니다.
BSD-2-Clause - SC- C.
MIT 용 공통 라이브러리 및 데이터 구조 - Tbox- 많은 기능을 갖춘 다중 플랫폼 라이브러리.
Apache-2.0 - PSPSDK- PSP 홈브류 개발을위한 오픈 소스 SDK. 다양한 라이센스.
게임 프로그래밍
엔진, 라이브러리 및 게임 제작에 특별히 유용한 것들.
- Allegro- 크로스 플랫폼, 비디오 게임 개발 및 멀티미디어 라이브러리.
Zlib - Assetkit? Collada/GLTF Specs
MIT 기반으로 한 3D 자산 수입 업체/Exporter/UTIL 라이브러리 - ASTERA -C99 크로스 플랫폼 2D 게임 라이브러리
MIT - CGLM-? C.
MIT 에 대한 최적화 된 OpenGL/그래픽 수학 (GLM) - Chipmunk2d- 빠르고 가벼운 2D 게임 물리 라이브러리.
MIT - CMT-? A 애플의 금속 그래픽 프레임 워크에 대한 C 바인딩/포장.
MIT - CORANGE- 순수한 C.
BSD-2-Clause 의 게임 엔진 - CSFML- SFML에 대한 바인딩.
Zlib - 다크 플레이스 - Quake2 엔진의 수정 된 버전.
GPL-2.0-only - 에폭시 - OpenGL 기능 포인터 관리를 처리하기위한 라이브러리.
MIT - exengine- 시작 템플릿이있는 C99의 3D 게임 엔진.
MIT - FLECS- C89 & C99
MIT 용으로 작성된 멀티 스레드 엔티티 구성 요소 시스템 - FREECELL SOLVER- FreeCell 및 일부 유사한 변형의 카드 솔리테어를 자동으로 해결하기위한 라이브러리 및 명령 줄 프로그램 세트.
MIT - FreeGlut- OpenGL 유틸리티 툴킷 대안. OpenGL 컨텍스트로 Windows의 생성 및 관리를 허용합니다.
X11 - GLFW- OpenGL 컨텍스트가있는 Windows를 생성하기위한 멀티 플랫폼 라이브러리.
Zlib - ioquake3- Quake3 엔진, 마침내 해방.
GPL-2.0-only - Kazmath- 게임을위한 수학 도서관.
BSD-2-Clause - LIBAO- 다양한 출력이있는 크로스 플랫폼 오디오 라이브러리.
GPL-2.0-or-later - LIBRG- 단순하고 우아한 크로스 플랫폼 멀티 플레이어 클라이언트 서버 솔루션을 구축하기위한 순수한 C99 게임 네트워킹 라이브러리.
Apache-2.0 - Mathc- 2D 및 3D 프로그래밍을위한 수학 라이브러리.
ZLib - ORX- 휴대용, 경량, 플러그인 기반, 데이터 중심, 2D 지향 게임 엔진.
Zlib - 지진 - 쿼크 엔진.
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? Collada/GLTF Specs
MIT 기반으로 한 3D 자산 수입 업체/Exporter/UTIL 라이브러리 - 카이로 -2D 그래픽 라이브러리.
LGPL-2.1-only 또는 MPL-1.1 . - CMT-? A 애플의 금속 그래픽 프레임 워크에 대한 C 바인딩/포장.
MIT - giflib- GIF 이미지를 읽고 쓰는 도서관.
MIT - 그래 핀 - 그래픽 데이터 유형의 얇은 층.
MIT - HEMAN- 높이 맵, 일반 맵, 거리 필드 등을 다루는 작은 이미지 유틸리티 라이브러리.
MIT - Libcaca -Terminal 기반 인터페이스 용 ASCII 렌더러.
WTFPL - LIBGD- 프로그래머가 이미지의 동적 생성을위한 라이브러리.
MIT - LibimageQuant- RGBA 이미지를 8 비트 인덱스 컬러 이미지로 고품질 전환하기위한 소형 휴대용 라이브러리.
GPL-3.0-or-later - libjpeg -turbo- JPEG 파일을 읽고 쓰는 더 빠른 라이브러리. 다양한 라이센스.
- LIBPNG- 공식 PNG 참조 라이브러리.
Libpng - LIBSVG- 카이로를 사용하여 SVG 파일을 렌더링하는 라이브러리.
LGPL-2.1-or-later - LIBSIXEL -LIBRARY SIXEL 프로토콜을 구현하여 터미널에서 아름다운 그래픽을 허용합니다.
MIT - libspng- PNG 파일을 읽고 쓰는 간단한 인터페이스.
BSD-2-Clause - libvips- 이미지 처리 라이브러리.
LGPL-2.1-or-later - LIBXMI- 래스터 라이즈 2D 벡터 그래픽을위한 기능 라이브러리.
GPL-3.0-or-later - LightMapper- 기존 OpenGL 렌더러를 사용하여 LightMap 베이킹 용 단일 파일 라이브러리. 공개 도메인.
- Little CMS- 색상 관리 시스템. ICC 프로파일간에 빠른 변환을 제공합니다.
MIT - Mozjpeg- 개선 된 JPEG 인코더.
BSD-3-Clause - NANOVG- UI 및 시각화를 위해 OpenGL 상단의 aliased 2D 벡터 드로잉 라이브러리.
Zlib - OpenGL- 고유 한 C 바인딩을 갖춘 고성능 그래픽을위한 산업 표준. 다양한 라이센스.
- PLUTOVG- C
MIT 의 독립형 2D 벡터 그래픽 라이브러리 - SAIL- ⛵ 인간을위한 작고 빠른 이미지 디코딩 라이브러리 (기계가 아님)
MIT
그래픽 사용자 인터페이스
위젯 툴킷 또는 비슷한 방식으로 사용되는 것들.
- GTK+ - 크로스 플랫폼 위젯 툴킷.
LGPL-2.1-only - IUP- 또 다른 크로스 플랫폼 위젯 툴킷.
MIT - Microui- 작은 즉각 모드 UI 라이브러리 휴대용 Ansi C.
MIT 로 작성되었습니다. - NAPPGUI- C.
MIT 사용하여 크로스 플랫폼 데스크톱 응용 프로그램을 구축하는 전문 SDK - Nuklear -Small, C89, 단일 헤더 위젯 툴킷. 공개 도메인.
- TinyFileDialogs- 간단한 대화를위한 단일 파일 라이브러리. 다른 많은 툴킷 및 OS와 호환됩니다.
Zlib - TK- 기본 위젯 툴킷. TCL/TK의 일부.
TCL - Xforms Toolkit- Xwindow 시스템을 위해 설계된 위젯 툴킷.
LGPL-2.1-only - LVGL- 사용하기 쉬운 그래픽 요소, 아름다운 비주얼 및 낮은 메모리 풋 프린트가있는 내장 GUI.
MIT - Luigi- Win32, X11 및 Essence 용 Barebones 단일 헤더 GUI 라이브러리.
MIT
해싱
비 크립토 목적으로 해시 기능 구현. 암호화 해시는 암호화 섹션에서 찾을 수 있습니다.
- Clhash- 도서관은 엄청나게 빠른 Clhash 해싱 기능을 구현합니다. 인텔 Haswell 또는 Newer에서만 작동합니다.
Apache-2.0 - Highwayhash- 빠르고 강력하며 심각한 해시 기능. 또한 siphash의 구현도 포함되어 있습니다 (이것은 느리지 만).
Apache-2.0 - Spookyhash- 매우 빠른 해시 기능.
BSD-3-Clause - T1HA- 빠른 양성 해시 - 휴대용, 빠른 해시 기능.
BSD-3-Clause - XXHASH- 매우 빠른 해싱 알고리즘. 32 및 64 비트 품종으로 제공됩니다.
BSD-2-Clause
학습, 참조 및 튜토리얼
일반적으로 C 프로그래밍을 학습하기위한 리소스 또는 C 프로그래밍과 관련된 유용한 것.
온라인 참조 리소스
- Lockless Memory 할당 자의 벤치 마크
- C FAQ -Comp.Lang.c 자주 묻는 질문
- Linux의 C/Posix 표준 라이브러리 구현 비교
- 초안 C89 표준
- 초안 C99 표준
- 초안 C11 표준
- 최고의 64 비트 시뮬레이션 PRNG 찾기
- SEI CERT C 코딩 표준
- tinyc.game -지금 컴파일하고 실행할 수있는 작은 C 게임 http://tinyc.games
MIT
초보자 자원 온라인
- 포인터에 대한 튜토리얼
- 휴대용 메이크 파일에 대한 튜토리얼
- C 프로젝트 구축
- C 프로그래밍 Wikibook
- '재미'소개 c
- GDB로 C 학습
- memcpy vs memmove
- Posix 스레드 프로그래밍 튜토리얼 (약간 날짜가 있지만 대부분은 유효하고 유용합니다)
- GNU C 프로그래밍 자습서 (온라인 PDF)
- c
- C 프로그래머가 기억에 대해 알아야 할 것
- Codeforwin : 배우기, C 프로그래밍, 데이터 구조 자습서 및 온라인 연습
- C : 무료 및 오픈 소스 대화식 C 튜토리얼
- 텍스트 모험을 프로그래밍하는 방법 c
온라인 중간 자원
- 알아야 할 8 GDB 트릭
- 10 C99 트릭
- 포괄적 인 MPI 튜토리얼 리소스
- 자신의 텍스트 편집기를 구축하십시오
- 동시성으로 뛰어 들기 : 뮤 테스와 원자력을 시험해보십시오
- 일반 C 참조 계산
- 빌드를 복잡하지 않고 휴대용 C를 작성하는 방법
- OpenMP 소개 (비디오)
- OpenMP 튜토리얼 (OpenMP3 표준)
- MPI 튜토리얼
- 확장 가능한 C- 대규모 분포 작성 c
- C 언어의 알려지지 않은 특징이나 요령
- 모든 C 프로그래머가 정의되지 않은 행동에 대해 알아야 할 것
온라인 고급 리소스
- c
- Malloc, Free, Calloc 및 Realloc 구현 및 디버깅에 대한 빠른 자습서
- 비트 twiddling 핵
- C 프로그래밍 언어를위한 스마트 포인터 구현
- c.의 인라인 함수
- c
- C 매크로의 임시 저장 문제 해결
- c의 어두운 구석
- 효율적인 C 및 C 코드 최적화 작성
- 순수한 C99에서 대수 데이터 유형을 컴파일합니다
참고서
- C : 참조 설명서 5E- C99 용 전체 참조 북.
- C11에 대한 C10의 간결한 참조 책.
- C 포켓 참조 - C99에 대한 간결한 참조 도서.
- C 프로그래밍 언어 2E- 제작자에 의한 C의 원본 책.
초보자 책
- C Primer Plus 6E- C11의 프로그래밍에 대한 완전한 자습서.
- C 프로그래밍 : 현대적인 접근 - C의 기본 사항을 배우기위한 훌륭한 책
- Head First C- 'Head -First'스타일 책 학습 C.
중간 책
- 21st Century C- 좋은 두 번째 프로그래밍 북 C.
- C 포인터 이해 및 사용 - C의 포인터에 대한 심층적 인 리소스
- Zeromq- Zeromq와 함께 사용하기위한 책
고급 서적
- 전문가 C 프로그래밍 : Deep C 비밀 - 흥미롭고 심층적이며 재미있는 내부의 내부를보십시오.
- Modern C, Third Edition : C23 표준을 다룹니다. Modern C, Third Edition은 최신 도구와 기술을 사용하여 C의 잠재력을 최대한 활용하는 법을 배웁니다.
렉싱 및 파싱
어휘 분석 (또는 Lexing) 및 구문 분석 (또는 구문 분석)을위한 라이브러리.
- 플렉스 - 빠른 어휘 분석기 생성기.
BSD-2-Clause - GNU Bison- 주석이없는 컨텍스트가없는 문법을 다양한 파서로 변환하는 일반 목적 파서 생성기.
GPL-3.0-or-later - 해머 - 이진 형식 용 파서 조합.
GPL-2.0-only - MPC -Parser Combinator 라이브러리.
BSD-2-Clause - 올빼미 - 눈에 띄게 푸시 다운 언어를위한 파서 생성기.
MIT - RE2C -Lexer Generator, 내부에 액세스 할 수있는 빠른 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- 2 단계 분리 된 FIT 할당 자; 실시간 요구 사항을 충족하도록 설계된 범용의 동적 메모리 할당 자. 최신 구현.
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- 가벼운 MP3 디코더 단일 헤더 라이브러리.
CC0-1.0 - 사운드 파이프 - 가벼운 음악 DSP 라이브러리.
MIT
네트워킹 및 인터넷
저수준 네트워킹 및 인터넷 관련 물건. 보다 포괄적이고 높은 수준의 것을 원한다면 웹 프레임 워크 섹션을 원할 수 있습니다.
- ASNLC- ASN.1 사양의 컴파일러 C 소스 코드.
BSD-2-Clause - CHL -C 하이퍼 텍스트 라이브러리 - C.
GPL-3.0-only 웹 응용 프로그램을 작성하는 라이브러리 - CZMQ- ZEROMQ에 대한 높은 수준의 결합.
MPL-2.0 - dyad.c- 가볍고 쉬운 비동기 네트워킹 라이브러리.
MIT - GNU ADNS- 고급, 사용하기 쉽고 비동기식 DNS 클라이언트 라이브러리 및 유틸리티.
GPL-3.0-or-later - Gumbo -Parser -C99의 HTML5 구문 분석 라이브러리.
Apache-2.0 - H20- 새로운 세대 HTTP 서버.
MIT - LLHTTP -HTTP 요청/응답 파서.
MIT - LDNS- DNS 프로그래밍을 단순화하기위한 라이브러리.
BSD-3-Clause - LIBCURL- 클라이언트 측 URL 전송 라이브러리, 광범위한 형식을 지원합니다.
curl - Libetpan- IMAP, SMTP, POP 및 NNTP에 효율적인 네트워크를 제공하는 메일 라이브러리.
BSD-3-Clause - Libev- 또 다른 이벤트 루프.
BSD-2-Clause - Libevent- 네트워크 서버의 이벤트 루프 교체.
BSD-3-Clause - libhttpd- 라이브러리는 애플리케이션 또는 임베디드 장치에 기본 웹 서버 기능을 추가합니다.
GPL-2.0-only - LIBHV- 크로스 플랫폼 이벤트 루프 라이브러리.
BSD-3-Clause - Libidn- StringPrep, Punycode 및 Idna 사양의 구현.
GPL-3.0-or-later - libmicrohttpd- 다른 응용 프로그램의 일부로 HTTP 서버를 쉽게 실행할 수있는 작은 라이브러리.
LGPL-2.1-or-later - Libnl -Libnl
libnl NetLink 프로토콜 (IOCTL 교체)에 대한 API를 프로비에이티에 대한 라이브러리 모음입니다. 주요 용도는 Linux 커널과 통신하여 네트워킹 상태 (인터페이스, 라우팅 등)를 수정하는 것입니다. LGPL-2.1-only - Libonion- 사용하기 쉽도록 설계된 HTTP 서버 라이브러리.
Apache-2.0 - LIBPCAP -API는 다양한 커널 패킷 캡처 메커니즘을 제공합니다.
BSD-3-Clause - Libquickmail- 도서관은 개발자에게 응용 프로그램에서 이메일을 보내는 방법을 제공하기위한 도서관. 크기 제한이없는 다중 to/cc/bcc 수신자 및 첨부 파일을 지원합니다.
GPL-3.0-or-later - Libsagui- 크로스 플랫폼 HTTP 서버를위한 라이브러리.
LGPL-3.0-or-later - libuhttpd- 내장 된 Linux 용 Libev 및 HTTP -Parser를 기반으로 매우 유연하고 가볍고 완전 비동기 HTTP 서버 라이브러리.
MIT - LIBVNCSERVER- VNC 서버 및/또는 클라이언트 기능을 구현하기위한 크로스 플랫폼 라이브러리.
GPL-2.0-or-later - Libwebsock- 사용하기 쉬운 강력한 웹 소켓 라이브러리.
LGPL-3.0-only - LIBZMQ -CARE ZEROMQ 라이브러리, 고성능 비동기 메시징 라이브러리는 분산 또는 동시 응용 프로그램에 사용하기를 목표로합니다. C API (백엔드 C ++) 정적 연결 예외를 가진
GPL-3.0-or-later - lwan- 실험적이고 확장 가능하며 고성능 HTTP 서버.
GPL-2.0-only - Mongoose- 내장 된 웹 서버.
GPL-2.0-only - MQTT -C- 임베디드 시스템 및 PC 모두 용 휴대용 MQTT C 클라이언트.
MIT - NANOMSG -C 기반 ZEROMQ 구현.
MIT - NNG -NANOMSG -NEXT -GENERATION- 가벼운 중개인 메시징.
MIT - OSIP- 추가 종속성없이 SIP 구현.
LGPL-2.1-or-later - Silgy- C/C ++ 프로젝트를위한 비동기 HTTP 엔진.
MIT - Socket99 -BSD 소켓 API 용 C99 래퍼.
ISC - TWITC- Twitter Oauth API와 상호 작용하기위한 미니 라이브러리.
MIT - URIPARSER- 엄격하게 RFC 3986- 호환 URI 구문 분석 및 취급 라이브러리.
BSD-3-Clause - WSLAY- 웹 소켓 라이브러리. RFC 6455에 설명 된대로 WebSocket 프로토콜의 버전 13을 구현합니다.
MIT - Zyre- 근접 기반 피어 투 피어 애플리케이션을위한 프레임 워크.
MPL-2.0
수치
- 아포 페니아 - 통계 및 과학 컴퓨팅을위한 도서관.
GPL-2.0-only - ARB- 임의의 차가 간격 산술을위한 라이브러리.
LGPL-2.1-or-later - Atlas- 자동으로 선형 대수 소프트웨어를 조정했습니다.
BSD-3-Clause - Clblas- OpenCl로 작성된 BLAS 기능.
Apache-2.0 - CMATHL- CMAKE 빌드 지원을 갖춘 다양한 수학적 기능을 갖춘 수학 라이브러리. 휴대 성을 준수하는 C89/C90에 가깝습니다.
MIT - 쿠바 - 다차원 수치 통합을위한 도서관.
LGPL-3.0-only - FFT-C- NetLib의 FFTPack에서 고성능 푸리에 변환; 사용자 친화적 인 형식
MIT 로 싸여 있습니다 - FFTW- 서부에서 가장 빠른 푸리에 변환; 고도로 최적화 된 빠른 푸리에 변환 루틴.
GPL-2.0-or-later - 플린트 - 숫자 이론을위한 빠른 도서관; 숫자, 다항식, 파워 시리즈 및 매트릭스와 함께 산술을 지원하는 라이브러리.
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. 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
Signal Processing
- libsigrok - signal analysis software suite that supports various device types (such as logic analyzers, oscilloscopes, multimeters, and more). [
GPL ][GPL]
테스트
- CHEAT - Simple unit testing framework.
BSD-2-Clause - Check - Unit testing framework.
LGPL-2.1-only - ciut - A modern minimal hassle unit test framework.
MIT - clar - Clear and simple unit testing framework.
MIT - CMock - Mock/stub generator.
MIT - cmocka - Unit testing framework with support for mock objects.
Apache-2.0 - Criterion - KISS, non-intrusive test framework.
MIT - ctest - Yet another unit testing framework.
Apache-2.0 - CUnit - Another unit testing framework.
LGPL-2.1-or-later - greatest - Unit testing library in one file, with no memory allocation.
ISC - minctest - Unit testing microlibrary.
BSD-3-Clause - munit - Small unit testing framework.
MIT - Nala - A test framework for C projects.
MIT - Rexo - Framework for C89/C++ featuring automatic registration of tests and a polished API.
Unlicense - Tau - A Micro Unit testing framework for C/C++ (~1k lines of code). Includes a rich set of assertion macros, supports automatic test registration and can output to multiple formats, like the TAP format or JUnit XML. Supported on Linux, macOS, FreeBSD, and Windows.
MIT - theft - Property-based testing (similar to Quickcheck).
MIT - Unity - Simple unit testing framework.
MIT - utest - Single-header unit testing library.
Unlicense
Text Editor Extensions
While practically any decent programmer's text editor supports C, there are some extensions that make it more pleasant. These are labelled by editor.
- CCompletion - Notepad++ autocompletion plugin. Works with all identifiers recognized by Ctags. This is a download link.
GPL-2.0-or-later - CEDET - Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs. Built-in.
GPL-3.0-or-later - Flycheck - Modern syntax checking for Emacs. For C, it can use either GCC or Clang as a back-end.
GPL-3.0-or-later - Neomake - Async :make and linting framework for Neovim/Vim.
MIT - Syntastic - Syntax checking and linting for Vim.
WTFPL - YASnippet - Emacs code template system, with C templates for common snippets.
GPL-3.0-or-later - YouCompleteMe - Code completion engine for Vim.
GPL-3.0-only
도구
Useful programs to help you write and debug C code which are not editors, libraries or compilers.
- Artistic Style - Fast and small automatic source code formatter that supports C.
LGPL-3.0-only - address-sanitizer - Fast memory error detector.
Apache-2.0 - bcc - A byte array generator to import binary files directy from C in the spirit of xxd.
ISC - c - Compile and execute C "scripts" in one go on the command line. Also has shebang support.
MIT - c99sh - Run C files using hash-bang.
BSD-2-Clause - cdecl - Online service to translate C declarations into English and vice versa. Public domain.
- cinclude2dot - Graphs include dependencies in a project using Graphviz. GPL-1.0-or-later or
GPL-2.0-or-later or GPL-3.0-or-later - ClangCheck - Static analysis tool, designed to work with Clang.
NCSA - conan.io - Something of a package manager for C.
MIT . - Cppcheck - Static analysis tool. Despite the name, works well with C.
GPL-3.0-or-later - Glade - RAD tool to enable quick development of GTK+ GUIs.
GPL-2.0-only - GMSL - GNU Make Standard Library; a collection of additional functionality for GNU Make.
BSD-3-Clause - GNU Global - Source code tagging tool.
GPL-3.0-only - GPP - General-purpose preprocessor. More versatile than the C preprocessor, but more flexible than m4.
LGPL-3.0-or-later - Highlight - Converts source code to formatted text with nice highlighting.
GPL-3.0-only - include-what-you-use - Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it).
NCSA - incbin - Include binary files in your C/C++ applications with ease
Unlicense - indent - Formats C source code automatically to make it easier to read. Also converts from one style of source to another.
GPL-3.0-or-later - SMACK - Modular software verification toolchain and a self-contained software verifier. Currently only works with programs compiled using Clang.
MIT - unifdef - Removes #ifdef and #if directives with their delimited text without touching any other part of the file.
BSD-3-Clause or BSD-2-Clause
유용
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.