素晴らしいc
c良いもののキュレーションされたリスト。このリストには、オープンソースコードのみ(リンクされたオープンソース定義で定義されています)と、物理的なリソースにとって悪ではない売り手が含まれています。
これは、Creative-Attribution-Attribution-Sharealikeライセンス、バージョン4(SPDXコードCC-BY-SA-4.0 )の下でリリースされます。そのテキストはライセンスファイルにあります。
重要なメモ:このプロジェクトは、C ++に関連するものをインデックスしません。純粋なCのみが考慮されます。
貢献者向けの注意:プルリクエストを行いたい場合は、最初に貢献を読んでください。
コンテンツ
- ai
- ベンチマーク
- システムを構築します
- コンパイラ
- 圧縮
- 並行性と並列性
- 暗号
- データベース
- データ構造
- デバッグ
- ドキュメント生成
- 編集者
- 埋め込み可能なスクリプトエンジン
- フレームワーク
- ゲームプログラミング
- グラフィックス
- グラフィカルユーザーインターフェイス
- ハッシュ
- 学習、参照、チュートリアル
- オンラインでリソースを参照してください
- オンラインで初心者のリソース
- オンラインで中級リソース
- オンラインで高度なリソース
- 参考書
- 初心者の本
- 中級の本
- 高度な本
- レクシングと解析
- メモリ管理
- マルチメディア
- ネットワーキングとインターネット
- 数値
- プロファイリング
- 正規表現
- シリアル化
- ソースコードコレクション
- 標準ライブラリ
- 文字列操作
- 構造化されたファイル処理
- テスト
- テキストエディター拡張機能
- ツール
- ユーティリティ
- Webフレームワーク
- Windows環境
ai
コンピュータービジョン、ニューラルネット、機械学習、およびその他の同様のこと。基本的に、あなたの大学がそれをAIと呼ぶなら、それはここに住んでいます。
- CCV -Cベース/キャッシュ/コアコンピュータービジョンライブラリ。現代のコンピュータービジョン。
BSD-3-Clause - CRANIUM -C99のポータブル、ヘッダーのみのANNライブラリ。
MIT - ファン - 高速アーティフィカルニューラルネットワークライブラリ。ニューラルネットワークの実装。
GPL-2.0-only - Genann- C89の単純なAnn、追加の依存関係なし。
Zlib - Kann -Two -File Ann Library。
MIT - libdeep-ディープラーニングライブラリ。
BSD-3-Clause - M2CGEN -CLIツール訓練されたクラシックMLモデルを依存関係がゼロのネイティブCコードに透過する。
MIT - SOD-組み込みコンピュータービジョンと機械学習ライブラリ。
GPL-3.0-only
ベンチマーク
さまざまなチップ/システムアーキテクチャにわたるさまざまなサブシステムのパフォーマンスを比較します。
- B63- C.
Apache-2.0用の軽量マイクロベンチマークツール
システムを構築します
Cのプロジェクトの建物とテストを自動化するツール
- AutoTools -GNUビルドシステム(Automake、Autoconf、Libtool ...)とも呼ばれます。 GPL-1.0-OR-Later
- AutoTools Project Skeleton-新しいプロジェクトをすばやくブートストラップするためのシンプルな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 - スコン - Pythonを使用したソフトウェア構造ツール。
MIT - Xmake-クロスプラットフォームビルドユーティリティ。
Apache-2.0 - ZProject-プロジェクトジェネレーターと構築システムサポートツール。
MPL-2.0
コンパイラ
コンパイラ、コンパイラおよびコンパイル関連のツール。
- CCACHE-再コンパイルを高速化するように設計されたコンパイラキャッシュ。
GPL-3.0-or-later - Clang- LLVMのコンパイラ。 C11をサポートします。
NCSA - CPROC -QBEをバックエンドとして使用するC11コンパイラ。
ISC - DISTCC-いくつかのマシンにビルドを配布できるプログラム。
GPL-2.0-or-later - 企業 - コンパイラでの使用に適したグラフベースの中間表現、最適化、アセンブリコード生成を提供するライブラリ。同じライセンスの下にある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 Roaring Bitmapの実装。
Apache-2.0 - FinitestateEntropy-最新のCPU用に最適化された2つの非常に効率的な圧縮コーデック。
BSD-2-Clause - 密度 - 超高速圧縮ライブラリ。
BSD-3-Clause - Heatshrink-埋め込みおよびリアルタイムシステム用のデータ圧縮/減圧ライブラリ。
ISC - FAST_ZLIB -2〜10倍高速で走行するZLIBが改善されました。
BSD-3-Clause - FASTLZ -LIGHTNING -FASTロスレス圧縮ライブラリ(LZ77タイプ)。アームcortex-Mファミリーのような小さなターゲットに埋め込みます。ソースコードは、プロジェクト(H/Cファイルのペア)に直接組み込み可能で、動的メモリ割り当てはありません。
MIT - HuffandPuff -Minimal Huffmanエンコーダーとデコーダー。パブリックドメイン。
- 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 - 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-FIRST-COME First-Suved Readers/Writers Lock for Posixスレッド。
CC0-1.0 - Libaco-燃えるような高速で軽量のC非対称コルーチンライブラリ。
Apache-2.0 - libconcurrent- c11用のコルーチンを使用した、同時プログラミングライブラリ。
BSD-3-Clause - LIBCSP -CSPモデルの影響を受けた高性能の並行性Cライブラリ。
MIT - Libdill-構造化された同時プログラミングを簡単にするライブラリ。
MIT - libhl-ライブラリのスレッドセーフAPIを実装して、さまざまなデータ構造を管理します。また、同時およびロックフリープログラミングのためのいくつかのサポート機能と構造を提供します。
LGPL-3.0-only - Liburcu-データ同期ライブラリ。これは、コアの数と直線的にスケーリングします。
LGPL-2.1-or-later - ミル - ゴースタイルの並行性。
MIT - oclkit -2ファイルOpenclラッパー。
GPL-3.0-or-later - OCL-MLA-OPENCLミッドレベルの抽象化。
BSD-3-Clause - OpenMP -Codeの簡単な並列化を可能にするように設計されたプラグマのセット。標準(該当しないライセンス)。
- MPIを開く - メッセージの通過インターフェイスの実装。
BSD-3-Clause - PAL-数学、並列処理、データの動きのための最適化ライブラリ。
Apache-2.0 - PTH-複数の実行スレッドの非婚dive優先度ベースのスケジューリングのためのポータブル実装。
GPL-3.0-or-later - pthreads -posixスレッドライブラリ。標準(ライセンスが適用されない)。
- Tinycthread- C11スレッド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 -Multiprecision IntegerおよびRational Arithmetic Cryptographic Library;楕円曲線暗号化のための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ライブラリが含まれます。パブリックドメイン。
データベース
C APIを使用したデータベースとデータストア。
- BERKELEYDB-キー価値データ用の高性能埋め込みデータベース用ライブラリ。
AGPL-3.0-only - duckdb -C APIを使用した高速インプロセス分析データベース。
MIT - EJDB2 -Embeddable JSONデータベースエンジン。
MIT - GROONGA-フルテキスト検索付きのカラムストア。
LGPL-2.1-only - Hiredis- Redisの最小限のクライアントライブラリ。
BSD-3-Clause - libmongoc- mongodbの高性能クライアントライブラリ。
Apache-2.0 - LMDB-Ultra-Fast、Ultra-Compact Keyvalue Embedded Data Store。
OLDAP-2.8 - MySQL-世界で最も人気のあるオープンソースデータベース。
GPL-2.0-only - PostgreSQL-強力なオブジェクト関連データベースシステム。
PostgreSQL - Redis -Advanced Key -Valueストア。
BSD-3-Clause - Sophia-モダンな埋め込み可能なキー価値データベース。
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-ジェネリック用のライブラリですが、タイプセーフ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 - デバッグ - 簡単に「printfデバッグ」のための1つのヘッダーライブラリ。
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、TypeScript、Python、Ruby、C#、WASM、JAVA、COBOLなどをサポートするクロスプラットフォームポリグロットランタイム。
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 Homebrew開発用のオープンソースSDK。さまざまなライセンス。
ゲームプログラミング
エンジン、ライブラリ、その他のゲームを作成するために特別に役立つもの。
- Allegro-クロスプラットフォーム、ビデオゲーム開発、マルチメディアライブラリ。
Zlib - assetkit? Collada/GLTF Specs
MITに基づく3D Asset Importer/Exporter/UTILライブラリ - Astera -C99クロスプラットフォーム2Dゲームライブラリ
MIT - CGLM-? C.
MITの最適化OpenGL/Graphics Math(GLM) - Chipmunk2D-高速および軽量の2Dゲーム物理ライブラリ。
MIT - cmt-? AppleのMetal Graphics FrameworkのCバインディング/ラッパー。
MIT - Corange-Pure C.
BSD-2-Clauseのゲームエンジン - CSFML -SFMLのバインディング。
Zlib - DarkPlaces -Quake2エンジンの変更されたバージョン。
GPL-2.0-only - エポキシ - OpenGL関数ポインター管理を処理するためのライブラリ。
MIT - Exengine -Start Templateを備えたC99の3Dゲームエンジン。
MIT - FLECS -C89およびC99
MIT用に記述されたマルチスレッドエンティティコンポーネントシステム - Freecell Solver -FreecellとCard Solitaireのいくつかの同様のバリエーションを自動的に解くためのライブラリとコマンドラインプログラムのセット。
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プログラミング用のMATHライブラリ。
ZLib - ORX-ポータブル、軽量、プラグインベース、データ駆動型、2D指向のゲームエンジン。
Zlib - Quake- Quakeエンジン。
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 -minimal a*実装。
ZLib
グラフィックス
Cのグラフィックのプログラム操作。 GUIを作成したい場合は、グラフィカルユーザーインターフェイスセクションに必要なものがあります。
- assetkit? Collada/GLTF Specs
MITに基づく3D Asset Importer/Exporter/UTILライブラリ - カイロ-2Dグラフィックライブラリ。
LGPL-2.1-onlyまたはMPL-1.1 。 - cmt-? AppleのMetal Graphics FrameworkのCバインディング/ラッパー。
MIT - GIFLIB-GIF画像を読み書きするためのライブラリ。
MIT - グラフェン - グラフィカルデータ型の薄い層。
MIT - Heman-高さマップ、通常のマップ、距離フィールドなどを扱う画像ユーティリティの小さなライブラリ。
MIT - libcaca-ターミナルベースのインターフェイスのASCIIレンダラー。
WTFPL - LIBGD-プログラマーによる画像の動的な作成のためのライブラリ。
MIT - libimagequant- RGBA画像を8ビットインデックス付きカラー画像に高品質の変換用の小型のポータブルライブラリ。
GPL-3.0-or-later - libjpeg -turbo- JPEGファイルを読み書きするためのより高速なライブラリ。さまざまなライセンス。
- LIBPNG-公式PNGリファレンスライブラリ。
Libpng - LIBRSVG -Cairoを使用して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-既存のOpenGLレンダラーを使用したLightMap Baking用のシングルファイルライブラリ。パブリックドメイン。
- Little CMS -Color Management System。 ICCプロファイル間の高速変換を提供します。
MIT - Mozjpeg -JPEGエンコーダーの改善。
BSD-3-Clause - Nanovg -UIおよび視覚化のために、OpenGLの上に反アライアスされた2Dベクトル図書館ライブラリ。
Zlib - OpenGL-ネイティブCバインディングを備えた高性能グラフィックスの業界標準。さまざまなライセンス。
- Plutovg -C
MITのスタンドアロン2Dベクターグラフィックライブラリ - 帆-tumans人間のための不足している小さくて高速な画像デコードライブラリ(機械用ではありません)
MIT
グラフィカルユーザーインターフェイス
ウィジェットツールキット、またはそれらと同様の方法で使用することを意図したもの。
- GTK+ - クロスプラットフォームウィジェットツールキット。
LGPL-2.1-only - IUP-別のクロスプラットフォームウィジェットツールキット。
MIT - Microui-ポータブルANSI C.
MITで書かれた小さな即時モードUIライブラリ - 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のベアボーンシングルヘッダーGUIライブラリ。
MIT
ハッシュ
非クリプト目的のためのハッシュ関数実装。暗号化のハッシュは、暗号セクションにあります。
- Clhash-途方もなく速いClhashハッシュ機能を実装するライブラリ。 Intel HaswellまたはNewerでのみ動作します。
Apache-2.0 - Highwayhash-高速、強い、SIMD使用ハッシュ機能。また、サイファッシュの実装も含まれています(ただし、これは遅いです)。
Apache-2.0 - Spookyhash-非常に高速なハッシュ機能。
BSD-3-Clause - T1HA-高速ポジティブハッシュ - ポータブル、高速ハッシュ機能。
BSD-3-Clause - xxhash-非常に高速なハッシュアルゴリズム。 32および64ビットの品種があります。
BSD-2-Clause
学習、参照、チュートリアル
一般的にCプログラミングを学習するためのリソース、またはCプログラミングに関連する有用なもの。
オンラインでリソースを参照してください
- ロックレスメモリアロケーターのベンチマーク
- C FAQ -comp.lang.cはよくある質問です
- LinuxのC/POSIX標準ライブラリ実装の比較
- ドラフトC89標準
- ドラフトC99標準
- ドラフトC11標準
- 最高の64ビットシミュレーションPRNGを見つける
- SEI CERT Cコーディング標準
- Tinyc.game-今すぐコンパイルして実行できるTiny 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プログラマーが未定義の動作について知っておくべきこと
オンラインで高度なリソース
- cの高度なメタプログラム
- malloc、free、calloc、およびreallocの実装とデバッグに関する簡単なチュートリアル
- ビットツイッドリングハック
- Cプログラミング言語のスマートポインターの実装
- cのインライン関数
- cのカスタム制御構造をメタプログラムする
- Cマクロの一時的な保管問題の解決
- cのいくつかの暗い角
- 効率的なCおよびCコードの最適化を記述します
- 純粋なC99で代数データ型をコンパイルします
参考書
- C:リファレンスマニュアル5E- C99の完全なリファレンスブック。
- C11のNutshell 2eのC C11の簡潔な参照ブック。
- Cポケットリファレンス - C99の簡潔な参照ブック。
- Cプログラミング言語2E-クリエイターによるオリジナルの本。
初心者の本
- C Primer Plus 6E- C11のプログラミングに関する完全なチュートリアル。
- Cプログラミング:現代的なアプローチ - Cの基本を学ぶための優れた本
- ヘッドファーストC-学習のための「ヘッドファースト」スタイルの本C
中級の本
- 21世紀C- Cの良い2番目のプログラミングブック
- Cポインターの理解と使用 - Cのポインターに関する詳細なリソース
- ZEROMQ -ZeromqをCで使用するための本
高度な本
- エキスパートCプログラミング:ディープCシークレット - Cの内部を興味深い、詳細で面白い見て
- Modern C、第3版:C23標準をカバー - Modern C、第3版では、最新のツールとテクニックを使用してCの潜在能力を最大限に活用することを学びます。
レクシングと解析
特に語彙分析(または語彙)および構文分析(または解析)専用のライブラリ。
- フレックス - 高速字句アナライザージェネレーター。
BSD-2-Clause - GNU Bison-注釈付きのコンテキストのない文法をさまざまなパーサーに変換する汎用パーサージェネレーター。
GPL-3.0-or-later - ハンマー - バイナリ形式用のパーサーコンビネーター。
GPL-2.0-only - MPC -Parser Combinator Library。
BSD-2-Clause - OWL-目に見えるプッシュダウン言語用のパーサージェネレーター。
MIT - RE2C -Lexerジェネレーター、その内部にアクセスできる高速レキサーを生成します。パブリックドメイン。
メモリ管理
異なる、より高速な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レベルの分離フィットアロケーター。リアルタイムの要件を満たすように設計された、汎用の動的メモリアロケーター。最新の実装。
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デコーダーシングルヘッダーライブラリ。
CC0-1.0 - サウンドパイプ - 軽量音楽DSPライブラリ。
MIT
ネットワーキングとインターネット
低レベルのネットワーキングとインターネット関連のもの。より包括的でハイレベルのものが必要な場合は、Web Frameworksセクションが必要になる場合があります。
- ASNLC -ASN.1仕様のコンパイラCソースコードへの仕様。
BSD-2-Clause - CHL -C HyperTextライブラリ - C.
GPL-3.0-onlyでWebアプリケーションを作成するためのライブラリ - 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 request/response parser。
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-ライブラリは、アプリケーションまたは組み込みデバイスに基本的なWebサーバー機能を追加します。
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-開発者にアプリケーションから電子メールを送信する方法を提供することを目的としたライブラリ。 /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-使いやすく強力なWebソケットライブラリ。
LGPL-3.0-only - LIBZMQ -分散または同時アプリケーションで使用することを目的とした、高性能の非同期メッセージングライブラリであるCore Zeromq Library。 C API(バックエンドC ++)
GPL-3.0-or-laterを備えた静的リンクの例外 - Lwan-実験的、スケーラブル、高性能HTTPサーバー。
GPL-2.0-only - Mongoose-組み込みWebサーバー。
GPL-2.0-only - MQTT -C-組み込みシステムとPCの両方のポータブルMQTT Cクライアント。
MIT - nanomsg -ZeromqのCベースの実装。
MIT - NNG -Nanomsg -Next -Generation -Lightweight Brokerlessメッセージング。
MIT - OSIP-追加の依存関係なしのSIP実装。
LGPL-2.1-or-later - Silgy- C/C ++プロジェクトの非同期HTTP(S)エンジン。
MIT - Socket99 -BSDソケットAPIのC99ラッパー。
ISC - Twitc -Twitter OAuth APIと対話するためのミニライブラリ。
MIT - Uriparser -Strictly RFC 3986準拠のURI解析および取り扱いライブラリ。
BSD-3-Clause - WSLAY- WebSocketライブラリ。 RFC 6455で説明されているように、Websocketプロトコルのバージョン13を実装します
MIT - Zyre-近接ベースのピアツーピアアプリケーションのフレームワーク。
MPL-2.0
数値
- Apophenia-統計および科学的コンピューティングのライブラリ。
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 - フリント - 数字理論の高速ライブラリ。 a library supporting arithmetic with numbers, polynomials, power series and matrices, among others.
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
正規表現
- 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.