Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Oct 11, 2023. It is now read-only.
/awesome-cPublic archive

Bfgeshka/awesome-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A curated list of C good stuff. Contributions are welcome.

An important note: first and foremost linked resources are for C, thereforeC++ is an afterthought.

Note: there are several awesome-c lists already, but they are havingsomewhat different sets of libraries in them. This list tries to incorporatethem all, and many more other resources. Consider it my personal cheat sheet andindex for easier search instead of github stars. Also, original list categoriesare a mess.

Note: all licenses after project descriptions are leading to actual licensetext or declaration, if any provided. Source code with no license attached isconsidered as automatically copyrighted by law or it is falling under the caseof terms of service of provided source code publication and hosting service, sokeep this in mind. Also, probably sometimes license can be provided ormentioned, but I've failed to find it.

I am not an attorney btw.

Incorporated lists:


Index




Meta

Standards

^ Standards


Tooling

Build Systems

^ Build Systems

  • aimake - Build tool designed to avoid complex configurations.GPL 3
  • Autoconf - Extensible package of M4 macros that produce shell scriptsto automatically configure software source code packages. Part of theAutotools.GPL 2
  • Automake - Tool for automatically generatingMakefile.in filescompliant with the GNU Coding Standards. Requires the use of Autoconf. Part ofthe Autotools.GPL 2
  • Bazel - Build system for various operating systems and targets.Apache 2
  • Buck - Build system created and used by Facebook.Apache 2
  • CMake - Cross-platform family of tools designed to build, package andtest software. Written in C++11.BSD 3-Clause
  • GNU Make - Tool which controls the generation of executables andother non-source files of a program.GPL 3
  • jamplus/jamplus - Jamplus is a generic code and data build systemderived from the original Perforce version of Jam.License
  • Libtool - Generic library support script. Part of the Autotools.GPL 2
  • Meson - Build system based on Ninja and Python.Apache 2
  • ninja-build/ninja - Small, simple build system with a focus on speed.Apache 2
  • Premake - Generates project files for Visual Studio, Xcode and GNUMake. Targets suppport can be extended via modules.BSD 3-Clause
  • Qbs - Modern build tool for software projects.Licenses
  • qmake - Build system included with the Qt Framework.Licenses
  • SCons/scons - Software construction tool based on Python.License
  • gittup/tup - Tup is a file-based build system.GPL 2
  • xmake-io/xmake - Cross-platform build utility based on Lua.Apache 2
  • zeromq/zproject - Project generator and build system support toolfor ZeroMQ project.MPL 2
  • michaelforney/samurai - ninja-compatible build tool written in C.Licenses
  • matricks/bam - Build system with Lua scripting.License

Compilers

^ Compilers

Debugging and Analysis

^ Debugging and Analysis

  • C-Reduce - Tool that takes a large C file with a property of interestand automatically produces a much smaller C file that has the same property.Intended to help create minimal bug-demonstrating cases in complex code.License
  • CBMC - C Bounded Model Checker; a tool for verification of arraybounds, pointer safety and user-specified assertions.License
  • cgdb/cgdb - Console front-end to the GNU debugger.GPL 2
  • GNU cflow - Analyzes a collection of source files and prints a graphcharting control flow in the program.GPL 3
  • ClangCheck - Static analysis tool, designed to work with Clang.NCSA
  • GNU Complexity - Tool for measuring the complexity of source code.GPL 3
  • Cppcheck - Static analysis tool. Despite the name, works well with C.GPL 3
  • CScout - Source code analyzer and refactoring browser for C programs.GPL 3
  • agl/ctgrind - Checking that functions are constant time withValgrind.No license
  • GNU DDD - Graphical front-end for a range of command-line debuggers.Licenses
  • GDB - GNU Project debugger.Licenses
  • lldb - LLVM debugger.NCSA
  • rr - Debugger that records non-deterministic executions to allow fordeterministic debugging.License
  • SVF-tools/SVF - Pointer Analysis and Program Dependence Analysis forC and C++ Programs.License
  • Valgrind - Range of dynamic analysis tools, including a leakchecker.GPL 2

Documentation Generation

^ Documentation Generation

  • Cxref - Generates documentation in either LaTeX, HTML, RTF or SGML.GPL 2
  • DocOnce - Modestly tagged markup language that can be used togenerate a range of formats.BSD 3-Clause
  • Doxygen - De-facto standard tool for generating documentation fromannotated sources. Can generate a large range of formats.GPL 2
  • GTK-Doc - Tool for generating C documentation from annotated sources.Has support for the Autotools.GPL 2

Editors

^ Editors

Microsoft Windows Environment

^ Microsoft Windows Environment

  • Cygwin - Designed to emulate a POSIX-compatible environmentextensively under Windows.Licenses
  • MinGW-w64 - Minimalist environment for C development on Windows with64 bit support.Licenses
  • MSYS2 - Minimal SYStem 2; aims to provide support for a POSIXenvironment on Windows, with a package manager based on Arch Linux'spacman. Packages have individual licenses, otherwise, as MinGW and Cygwin.BSD 3-Clause
  • reactos - A free Windows-compatible Operating System.GPL 2

Profiling

^ Profiling

  • gperftools - Collection of utilities for measuring and improvingperformance.BSD 3-Clause
  • gprof - Performance analysis tool. Part of GNU binutils.Licenses
  • OProfile - Statistical profiler for Linux. Can profile any code(including the kernel!) with low overhead and without recompilation.GPL 2
  • perf - Linux kernel-based profiler with a lot of functionality.GPL 2

Text Editor Extensions

^ Text Editor Extensions

Utilities

^ Utilities


Reading Material

Books

^ Books

Reference Books
Beginner Books
Intermediate Books
Advanced Books

Articles and Other Resources

Benchmarks
^ Benchmarks

Beginner Level
^ Beginner Level

Intermediate Level
^ Intermediate Level

Advanced Level
^ Advanced Level

Code Examples

Operating Systems
^ Operating Systems

Emulators, VMs
^ Emulators, VMs

UI, Windowing, Graphics
^ UI, Windowing, Graphics

Language Implementations
^ Language Implementations

Challenges
^ Challenges

Other Examples
^ Other Examples

AI

^ AI

Neural nets, machine learning, pattern recognition etc.

Algoritm Implementations

^ Algoritm Implementations

Some generic agoritms or ones with no specific attachments.

Argument Parsing

^ Argument Parsing

Calculations and Math

^ Calculations and Math

  • b-k/apophenia - Library for statistical and scientific computing.GPL 2
  • fredrik-johansson/arb - Library for arbitrary-precision intervalarithmetic.LGPL 2.1
  • ATLAS - Automatically Tuned Linear Algebra Software.License
  • BLAS - Basic Linear Algebra Subprograms; a set of routines thatprovide vector and matrix operations.License
  • Lichtso/CCWT - Complex Continuous Wavelet Transformation.MIT
  • CDFLIB - Library with routines to evaluate cumulative densityfunctions for a variety of standard probability distributions.Also can compute one parameter of the CDF given the others.No license
  • ScientificC/cmathl - Pure-C Math library with a great variety ofmathematical functions and CMake build support. Seeks to be close to C89/C90compliant for portability.MIT
  • Cuba - Library for multidimensional numerical integration.LGPL
  • adis300/fft-c - A high-performance Fourier Transform from netlib'sfftpack; wrapped in a user-friendly format.MIT
  • FFTW - The Fastest Fourier Transform in the West; ahighly-optimized fast Fourier transform routine.GPL 2
  • FLINT - Fast Library for Number Theory; a library supportingarithmetic with numbers, polynomials, power series and matrices, among others.LGPL 2.1
  • gjrand - Library of random-number generation routines.GPL 2
  • GLPK - GNU Linear Programming Kit; a package designed for solvinglarge-scale linear programming, mixed integer programming and other relatedproblems.GPL 3
  • GMP - GNU Multple Precision Arithmetic Library; a library forarbitrary-precision arithmetic.Licenses
  • GNU MPC - Library for complex number arithmetic.LGPL 3
  • GNU MPFR - Library for arbitrary-precision floating-pointarithmetic.LGPL 3
  • GNU MPRIA - Portable mathematics library for multi-precisionrational interval arithmetic.GPL 3
  • GSL - The GNU Scientific Library; a sophisticated numericallibrary.GPL3
  • HdrHistogram/HdrHistogram_c - C port of the HdrHistogram.License
  • igraph- Library for creating and manipulating large graphs.GPL2
  • KISS FFT - Very simple fast Fourier transform library.BSD
  • LAPACKE - C interface to LAPACK.License
  • PARI/GP - Computer algebra system for number theory; includes acompiler to C.GLP
  • PETSc - Suite of data structures and routines for scalable parallelsolution of scientific applications modelled by partial differentialequations.License
  • PROB - Library that handles various discrete and continuousprobability density functions.LGPL 3
  • PetteriAimonen/libfixmatrix - C library for fixed point matrix,quaternion and vector calculations.MIT
  • canonizer/libgpuvm - library which simplifies host-GPU datatransfer using userspace pagefault handling.No license
  • libtom/libtommath - LibTomMath is a free open source portablenumber theoretic multiple-precision integer library written entirely in C.Unlicense
  • JuliaMath/openlibm - High quality system independent, portable,open source libm implementation.License
  • imneme/pcg-c - PCG — C Implementation.Apache 2
  • imneme/pcg-c-basic - PCG — Minimal C Implementation.Apache 2
  • libtom/tomsfastmath - TomsFastMath is a fast public domain, opensource, large integer arithmetic library written in portable ISO C.Licenses
  • cvxgrp/scs - C package that solves convex cone problems viaoperator splitting.MIT
  • SLEPc - Library for the solution of large, sparse eigenvalueproblems on parallel computers.BSD 2-Clause
  • slim-curve/slim-curve - SLIM Curve: a package for exponential curvefitting of combined spectral lifetime image data.GPL 3
  • tinyexpr - Tiny recursive-descent parser, compiler and evaluationengine for simple mathematical expressions.Zlib
  • Yeppp! - Very fast, SIMD-optimized mathematical library.License
  • PetteriAimonen/libfixmath - Cross Platform Fixed Point MathsLibrary.MIT
  • datenwolf/linmath.h - Linear math as required for computer graphics.WTFPL

Compression

^ Compression

Concurrency and Parallelism

^ Concurrency and Parallelism

Cryptography

^ Cryptography

Databases

^ Databases

Data Structures and Types

^ Data Structures and Types

Events

^ Events

Foreign Function Interfaces

^ Foreign Function Interfaces


Filetype Targets

Libraries for working with specific filetypes or classes of filetypes.

╠════ Binaries

^ Binaries

╠════ CSV

^ CSV

╠════ HTML

^ HTML

╠════ JSON

^ JSON

╠════ INI

^ INI

╠════ Markdown

^ Markdown

╠════ XML

^ XML

╚════ Other Filetypes

^ Other Filetypes


Flow Control and Language Extension

^ Flow Control and Language Extension


Game Development

Engines, libraries and other helpful things specifically for making games.

╠════ Game Engines

^ Game Engines

╠════ Graphics Rendering

^ Graphics Rendering

Everything related to video rendering only. Also visitawesome-opengl andawesome-vulkan.

╚════ Gamedev Helping Libraries

^ Gamedev Helping Libraries


Geography

^ Geography

Geodata, street maps, navigation and so on

GUI

^ GUI

Hardware Oriented

^ Hardware Oriented

Hashing

^ Hashing

Hash function implementations for non-cryptographic purposes.

Image Processing and Computer Vision

^ Image Processing and Computer Vision

Integrated Debugging and Logging

^ Integrated Debugging and Logging

I/O

^ I/O

  • Lajnold/falloc - falloc creates files of a user-specified size. Ituses the posix_fallocate syscall for allocating the right size directly,instead of copying data like the commonly used dd tool does.GPL 3
  • cgaebel/pipe - A simple thread-safe FIFO in C.MIT
  • cxong/tinydir - Lightweight, portable and easy to integrate Cdirectory and file reader.License
  • reverbrain/eblob - Eblob is an append-only low-level IO library,which saves data in blob files. Created as low-level backend for elliptics.LGPL 3
  • tronkko/dirent - C/C++ library for retrieving information on filesand directories.MIT
  • jwerle/fs.c - File system API much like Node's fs module.MIT
  • zevv/duc - Library and suite of tools for inspecting disk usage.LGPL 3
  • kwhat/libuiohook - A multi-platform C library to provide globalkeyboard and mouse hooks from userland.GPL 3
  • dr-soft/dr_fs - Single file libraries for working with filesystem.Public Domain
  • mpaland/printf - Standalone printf, sprintf and (v)snprintfimplementation.MIT

Lexing and Parsing

^ Lexing and Parsing

Memory Management

^ Memory Management

Multimedia

^ Multimedia

Audio and video processing.

Multiple Purpose Libraries

^ Multiple Purpose Libraries

  • parallella/pal - Optimized library for maths, parallel processingand data movement.Apache 2
  • APR - Apache Portable Runtime; another library of cross-platformutility functions.Apache 2
  • GLib - Library of utility functions and structures, designed to beportable, efficient and powerful.LGPL 2.1
  • keybuk/libnih - Lightweight library of C functions and structures.GPL 2
  • wolkykim/qlibc - Simple and powerful C library, designed as areplacement for GLib while focusing on being small and light.License
  • chutsu/cog - C common library containing common data structures,sorting algorithms and utility functions.MIT
  • cs50/libcs50 - CS50 Library for C.MIT
  • dcreager/libcork - A simple, easily embeddable cross-platform Clibrary.BSD 3-Clause
  • faragon/libsrt - C library for writing fast and safe C code,faster. It provides string, vector, bit set, set, map, hash set, and hash maphandling. Suitable for soft and hard real-time. Allows both heap and stackallocation.BSD 3-Clause
  • koanlogic/libu - LibU is a multiplatform utility library written inC, with APIs for handling memory allocation, networking and URI parsing,string manipulation, debugging, and logging in a very compact way, plus manyother miscellaneous tasks.License
  • letoram/arcan - Display Server, Multimedia Framework,Game Engine-> "Desktop Engine".Licenses
  • saprykin/plibsys - Highly portable C system library: threads andsynchronization primitives, sockets (TCP, UDP, SCTP), IPv4 and IPv6, IPC,hash functions (MD5, SHA-1, SHA-2, SHA-3, GOST), binary trees (RB, AVL) andmore. Native code performance.MIT
  • tboox/tbox - A glib-like multi-platform c library.Apache 2
  • zpl-c/zpl - Your C99 Powerkit.Licenses
  • dmw/caffeine - C Application Framework.LGPL 2.1
  • breckinloggins/libuseful - A collection of useful data structures,algorithms, and utilities for C programming.MIT
  • erimatnor/libckit - A kit of C-based utilities and data structures.Apache 2
  • pforemski/libpjf - A C library of data structures with tools(based on libasn).GPL 3
  • stevedekorte/basekit - C based OO portable data structure library.BSD 3-Clause
  • mjansson/foundation_lib - Cross-platform foundation library inC providing basic support data types and functions to write applications andgames in a platform-independent fashion.Unlicense
  • happyfish100/libfastcommon - Functions including: string, logger,chain, hash, socket, ini file reader, base64 encode / decode,url encode / decode, fast timer, skiplist, object pool etc. detail info pleasesee the c header files.LGPL
  • sabit/libcprops - C prototyping tools.LGPL 2.1

Networking

╠════ DNS

^ DNS

╠════ HTTP

^ HTTP

╠════ Mail

^ Mail

╠════ Messaging and Brokers

^ Messaging and Brokers

╠════ Remote Desktops

^ Remote Desktops

  • FreeRDP/FreeRDP - FreeRDP is a free remote desktop protocol libraryand clients.Apache 2
  • LibVNC/libvncserver - LibVNCServer/LibVNCClient are cross-platformC libraries that allow you to easily implement VNC server or clientfunctionality in your program.GPL 2

╠════ RPC

^ RPC

╠════ TCP, UDP, Sockets

^ TCP, UDP, Sockets

╠════ Web Servers

^ Web Servers

╠════ Web Service APIs

^ Web Service APIs

╠════ Websockets

^ Websockets

╚════ Uncategorized Networking

^ Uncategorized Networking


OpenCL

^ OpenCL

OpenCL, CUDA, OpenMP and other similar APIs.

OS Specifics

^ OS Specifics

Procedural Generation

^ Procedural Generation

Processes and IPC

^ Processes and IPC

Regex and Search

^ Regex and Search

Serialization

^ Serialization

Source Code Collections

^ Source Code Collections

Scientific

^ Scientific

Math mostly located inCalculations category

Special Purpose

^ Special Purpose

Libraries with very narrow non-generic purpose.

  • TulipCharts/tulipindicators - Library of functions for technicalanalysis of financial data.LGPL 3
  • MatthewLM/cbitcoin - Low-level bitcoin library written in C.MIT
  • RhysU/ESIO - Provides simple, high throughput input and output ofstructured data sets using parallel HDF5. ESIO is designed to support readingand writing turbulence simulation restart files within C, C++, and modernFortran applications.LGPL 2.1
  • Unidata/netcdf-c - Official GitHub repository for netCDF-C librariesand utilities.BSD 3-Clause
  • jgarzik/picocoin - A bitcoin library in C, SPV wallet & more.License
  • libtrading/libtrading - Ultra low-latency trading connectivitylibrary for C and C++.BSD 2-Clause
  • nayuki/QR-Code-generator - High-quality QR Code generator libraryin Java, JavaScript, Python, C++, C.MIT
  • qiq/Czech-morphology - Czech morphology library, using data filescompatible with PDT 2.0License
  • sleuthkit/sleuthkit - The Sleuth Kit® (TSK) is a library andcollection of command line digital forensics tools that allow you toinvestigate volume and file system data. The library can be incorporated intolarger digital forensics tools and the command line tools can be directly usedto find evidence.Licenses
  • hroptatyr/uterus - universal tick encoder library to efficientlytransport huge amounts of tick data.BSD 3-Clause
  • luke-jr/bfgminer - Modular ASIC/FPGA miner written in C, featuringoverclocking, monitoring, fan speed control and remote interface capabilities.GPL 3

Standard Libraries

^ Standard Libraries

Implementations of the C standards

String Manipulation

^ String Manipulation

Testing

^ Testing

TUI

^ TUI

Textual User Interface


Uncategorized

^ Uncategorized


[8]ページ先頭

©2009-2025 Movatter.jp