Incrível c
Uma lista com curadoria de coisas boas. Esta lista contém apenas código de código aberto (conforme definido pela definição de código aberto vinculado) e vendedores que não são maus por recursos físicos.
Isso é lançado sob uma licença Creative Commons-Attribution-Sharealike, versão 4 (código SPDX CC-BY-SA-4.0 ). Você pode encontrar seu texto no arquivo de licença.
Uma nota importante: este projeto não indexa nada relacionado a C ++; Somente material C puro é considerado.
Nota para colaboradores: se você deseja fazer uma solicitação de tração, leia contribuindo.md primeiro.
Conteúdo
- Ai
- Benchmarking
- Build Systems
- Compiladores
- Compressão
- Simultaneidade e paralelismo
- Cripto
- Banco de dados
- Estruturas de dados
- Depuração
- Geração de documentação
- Editores
- Motores de script incorporáveis
- Estruturas
- Programação de jogos
- Gráficos
- Interface gráfica do usuário
- Hashing
- Aprendizagem, referência e tutoriais
- Recursos de referência online
- Recursos para iniciantes online
- Recursos intermediários online
- Recursos avançados online
- Livros de referência
- Livros para iniciantes
- Livros intermediários
- Livros avançados
- Lexing e análise
- Gerenciamento de memória
- Multimídia
- Rede e internet
- Numérico
- Perfil
- Regex
- Serialização
- Coleções de código -fonte
- Bibliotecas padrão
- Manipulação de string
- Processamento de arquivos estruturado
- CSV
- JSON
- Ini
- Outros
- Xml
- Yaml
- Teste
- Extensões do editor de texto
- Ferramentas
- Utilitários
- Estruturas da web
- Ambientes Windows
Ai
Visão computacional, redes neurais, aprendizado de máquina e outras coisas semelhantes. Basicamente, se sua universidade chama de AI, ela vive aqui.
- Biblioteca de visão computacional baseada em CCV - baseada/em cache/núcleo; Visão computacional moderna.
BSD-3-Clause - CRANIUM - Biblioteca portátil e somente para cabeçalho em C99.
MIT - Fann - biblioteca de rede neural artificial rápida; uma implementação de redes neurais.
GPL-2.0-only - Genann - Ann simples em C89, sem dependências adicionais.
Zlib - KANN - Biblioteca de dois arquivos da Ann.
MIT - Libdeep - Biblioteca Deep Learning.
BSD-3-Clause - M2CGEN - Uma ferramenta CLI para transpilar modelos clássicos de ML treinados em um código C nativo com dependências zero.
MIT - SOD - Uma Visão Computacional incorporada e Biblioteca de Aprendizagem de Machine.
GPL-3.0-only
Benchmarking
Comparando o desempenho de vários subsistemas em diferentes arquiteturas de chip/sistema.
- B63-Ferramenta de micro-benchmarking leve para C.
Apache-2.0
Build Systems
Ferramentas que automatizam a construção e teste de projetos em C.
- AutoTools - também conhecido como sistema de construção GNU (Autorake, Autoconf, Libtool ...) é um dos sistemas de construção mais amplamente utilizados (Configure && Make). GPL-1.0-OR-LATER
- Esqueleto do Projeto AutoTools - Um esqueleto simples do AutoTools (modelo) para inicializar rapidamente novos projetos.
BSD-2-Clause - CMake - Família de ferramentas de plataforma cruzada projetada para criar, embalar e testar software.
BSD-3-Clause - Ferramenta GNU Make - que controla a geração de executáveis e outros arquivos não source de um programa.
GPL-3.0-or-later - Meson - sistema de construção extremamente rápido e fácil de usar. Baseado em Ninja.
Apache-2.0 - PREMAKE - Utilitário de linha de comando que lê uma definição script de um projeto de software e o usa para gerar arquivos de projeto para o Visual Studio e GNU Make. Outros alvos também estão sendo trabalhados.
BSD-3-Clause - SCONS - Ferramenta de construção de software usando Python.
MIT - XMake - utilitário de compilação de plataforma cruzada.
Apache-2.0 - ZProject - gerador de projetos e ferramenta de suporte ao sistema de construção.
MPL-2.0
Compiladores
Compiladores, bem como ferramentas relacionadas ao compilador e compilação.
- cache do compilador CCACHE, projetado para acelerar a recompilação.
GPL-3.0-or-later - Clang - Compilador para LLVM. Suporta C11.
NCSA - CPROC - um compilador C11 usando QBE como back -end.
ISC - DISTCC - Programa que permite que as construções sejam distribuídas entre várias máquinas.
GPL-2.0-or-later - Empresa - Biblioteca que fornece uma representação intermediária baseada em gráficos, otimizações e geração de código de montagem adequado para uso em compiladores. Vem com um exemplo C front-end sob a mesma licença.
LGPL-2.1-only - GCC - fornece um compilador C como parte de seu conjunto de compiladores. Suporta C11.
GPL-3.0-or-later - PCC - Compilador venerável. Suporta C99. Várias licenças, todas de código aberto.
Compressão
- BLOSC-Biblioteca de meta-compressor extremamente rápida, multithreada. Várias licenças, todas de código aberto.
- Brotli - Biblioteca de algoritmo de compressão sem uso geral sem uso. Tem velocidades comparáveis a desviar, mas taxas de compressão muito mais altas.
MIT . - CLZIP - C Versão do compressor de dados de alta qualidade LZIP (implementação LZMA).
GPL-2.0-or-later - Croaring - C Implementação de bitmaps rugindo.
Apache-2.0 - Finitestateentropia - Dois codecs de compressão altamente eficientes otimizados para CPUs modernas.
BSD-2-Clause - Densidade - biblioteca de compressão super -rápida.
BSD-3-Clause - Biblioteca de compactação/descompressão do Heatshrink - Compressão de dados para sistemas incorporados e em tempo real.
ISC - fast_zlib - Zlib melhorado, que funciona 2 a 10 vezes mais rápido.
BSD-3-Clause - FASTLZ - Biblioteca de compressão sem perdas com raio de raio (tipo LZ77). Incorporável em pequenos alvos, como as famílias de córtex-m do ARM. Código fonte diretamente incorporável em seu projeto (um par de arquivos H/C), sem alocação de memória dinâmica.
MIT - Huffandpuff - codificador e decodificador mínimo de Huffman. Domínio público.
- Libzip - C Biblioteca para leitura, criação e modificação de arquivos ZIP.
BSD-3-Clause - libbzip2-biblioteca de compressão de dados de alta qualidade e livre de patentes.
BSD-4-Clause - Lizard - anteriormente LZ5; um compressor eficiente com descompressão rápida. Atinge as taxas de compressão comparáveis com ZIP e Zlib em velocidades de descompressão de 1000MB/se e mais rápidas.
BSD-2-Clause - LZ4 - Biblioteca para um algoritmo de compressão extremamente rápido.
BSD-2-Clause - LZO - Biblioteca de compressão de dados rápida.
GPL-2.0-or-later - Pixz - compressor XZ paralelo e indexado.
BSD-2-Clause - shoco - compressor para pequenas seqüências de texto.
MIT - SIMDCOMP - Biblioteca simples para compactar listas de números inteiros usando a embalagem binária. Utiliza instruções SIMD no x86.
BSD-3-Clause - SMAZ - Biblioteca de compressão de string eficiente.
BSD-3-Clause - Squash - Biblioteca de abstração de compressão, completa com alguns utilitários.
MIT - TurbopFor - Compressão inteira mais rápida.
GPL-2.0-or-later - Turborle - codificação de comprimento de corrida mais eficiente.
GPL-2.0-or-later - ZIP - Biblioteca de Processamento de Arquivo de Zip muito pequeno.
Unlicense - ZLIB - Biblioteca de compressão massivamente espetada, mas delicadamente discreta.
BSD-3-Clause - Libarchive - Libarchive é uma biblioteca C portátil e eficiente que pode ler e gravar arquivos de streaming em vários formatos.
BSD-3-Clause - Substituição ZLIB-NG-ZLIB por otimizações para sistemas de 'próxima geração'.
BSD-3-Clause - Zstandard-Algoritmo de compressão rápido e sem perdas, direcionando cenários de compressão em tempo real nas taxas de compressão no nível do Zlib ou melhores.
BSD-3-Clause
Simultaneidade e paralelismo
- CCHAN - Biblioteca pequena para construções de canal para comunicação entre thread. Domínio público.
- CheckedThreads - Uma biblioteca simples para o paralelismo, com verificação interna para as condições de corrida.
BSD-2-Clause - CK - Primitivas de concorrência, mecanismos de recuperação de memória seguros e estruturas de dados não bloqueadores.
BSD-2-Clause - FCFS RWLOCK-Os leitores/escritores do primeiro a chegarem o primeiro lugar travam os threads POSIX.
CC0-1.0 - LIBACO - Uma biblioteca de coroutina assimétrica rápida e leve e leve.
Apache-2.0 - LibConcurrent - Biblioteca de programação simultânea, usando coroutines, para C11.
BSD-3-Clause - LIBCSP - Biblioteca de concorrência C de alto desempenho influenciada pelo modelo CSP.
MIT - Libdill - Biblioteca que facilita a programação simultânea estruturada.
MIT - Libhl - Biblioteca implementando uma API segura para thread para gerenciar uma série de estruturas de dados. Também fornece algumas funções e estruturas de suporte para programação simultânea e sem bloqueio.
LGPL-3.0-only - Liburcu - Biblioteca de sincronização de dados, que escala linearmente com o número de núcleos.
LGPL-2.1-or-later - Mill - Concorrência no estilo Go.
MIT - OCLKIT - Wrapper OpenCl de dois arquivos.
GPL-3.0-or-later - OCL-MLA-OpenCL Abstrações de nível médio.
BSD-3-Clause - OpenMP - Conjunto de Pragmas projetados para permitir uma paralelização fácil de código. Padrão (licenciamento não aplicável).
- Open MPI - Implementação da interface de passagem de mensagens.
BSD-3-Clause - PAL - Biblioteca otimizada para matemática, processamento paralelo e movimento de dados.
Apache-2.0 - PTH-Implementação portátil para agendamento baseado em prioridade não preventivo para vários threads de execução.
GPL-3.0-or-later - Pthreads - Biblioteca de threads POSIX. Padrão (sem licença aplicável).
- Tinycthread - Portátil, pequena implementação da API de threads C11.
Zlib
Cripto
Principalmente implementações de bibliotecas de algoritmos ou protocolos criptográficos conhecidos.
- GNU SASL - Implementação da camada simples de autenticação e segurança e alguns mecanismos SASL comuns.
GPL-3.0-or-later - GNUTLS - Biblioteca de comunicação segura, implementando SSL, TLS e DTLS.
LGPL-2.1-or-later - LibgCrypt - Biblioteca de criptografia de uso geral, com uma variedade de cifras disponíveis.
LGPL-2.1-or-later - OpenSSL - Implementação dos protocolos SSL e TLS. Também inclui uma biblioteca de criptografia. Dual Licenciado sob a licença OpenSSL e a licença SSLEAY.
- Liboqs - Biblioteca para algoritmos criptográficos resistentes à quântica.
MIT - Libsodium-Biblioteca criptográfica moderna e fácil de usar.
MIT - LibtomCrypt - Kit de ferramentas criptográfico bastante abrangente, modular e portátil. Domínio público.
- MBED TLS - Outra implementação de criptografia.
Apache-2.0 - Miracl - inteira multiprecision e biblioteca criptográfica aritmética racional; Um SDK para criptografia da curva elípica.
AGPL-3.0-or-later - Retter - Coleção de funções de hash, cifras, ferramentas, bibliotecas e materiais relacionados à criptografia e segurança. Domínio público.
- A implementação S2N - C99 dos protocolos TLS/SSL, projetada para ser simples, rápida e com segurança como prioridade.
Apache-2.0 - SPHLIB - Conjunto de implementações de várias funções de hash, incluindo várias criptográficas.
MIT - Trezor -Crypto - algoritmos criptográficos fortemente otimizados para dispositivos incorporados.
MIT - BFISH - Um único inclui a biblioteca Ansi -C Blowfish BCE Crypto. Domínio público.
Banco de dados
Bancos de dados e armazenamentos de dados com C APIs.
- Berkeleydb-Biblioteca para um banco de dados incorporado de alto desempenho para dados de valor-chave.
AGPL-3.0-only - DuckDB - Banco de dados analítico rápido em processo, com C API.
MIT - EJDB2 - Motor de banco de dados JSON incorporável.
MIT - Groonga - loja colunar com pesquisa de texto completo.
LGPL-2.1-only - Hiredis - Biblioteca de clientes minimalistas para Redis.
BSD-3-Clause - LibMongoc - Biblioteca de clientes de alto desempenho para MongoDB.
Apache-2.0 - LMDB-Ultra-Fast e Ultra Compact-Value Valor Incorporado Store de Dados.
OLDAP-2.8 - MySQL - o banco de dados de código aberto mais popular do mundo.
GPL-2.0-only - PostGresql - Sistema de Banco de Dados Relacional de Objetos.
PostgreSQL - Redis - loja avançada de valor -chave.
BSD-3-Clause - Sophia - Banco de dados de valor -chave moderno e incorporável.
BSD-2-Clause - Sparkey - Biblioteca de armazenamento de chave constante/valor simples. Projetado para cargas pesadas de leitura com inserções de grande granel pouco frequentes.
Apache-2.0 - SQLITE-Motor de banco de dados SQL transacional, sem servidor, sem servidor. Domínio público.
- UNQLITE-MOTOR NOSQL TRANSQUENTE ENFIGURAÇÃO AGRICIONAL, SEMBERTIVO, ZERO, NOSQL transacional.
BSD-2-Clause - WhitedB - Biblioteca de banco de dados leve, operando inteiramente na memória principal.
GPL-3.0-or-later - FlashDB-Um banco de dados de peso ultra-lightweight que suporta dados de valores-chave e séries temporais.
Apache-2.0 - TDENGINE-Banco de dados de séries temporais nativas em nuvem e alto desempenho.
AGPL-3.0-only
Estruturas de dados
- C-Macro-Collections-Gere estruturas de dados simples e genéricas usando macros.
MIT - CLIST - Implementação de matriz dinâmica simples e leve.
BSD-2-Clause - Coleções -C - Biblioteca de estruturas de dados genéricas.
LGPL-3.0-or-later - DS - Estruturas e algoritmos comuns de dados.
MIT - IGRAPH - Uma biblioteca de processamento de gráficos.
GPL-2.0-or-later - Kdtree - Biblioteca simples para trabalhar com árvores KD.
BSD-3-Clause - Libavl - Biblioteca contendo uma variedade de árvores binárias auto -equilibradas.
GPL-3.0-or-later - Libcdada - Uma biblioteca pequena, portátil e sem macro para estruturas de dados básicas (lista, conjunto, mapa, fila ...) em C (back -end C ++).
BSD-2-Clause - Liblfds - Biblioteca de estrutura de dados sem trava portátil. Domínio público (mais exatamente, qualquer licença que você desejar).
- Libsrt - estruturas de dados em tempo real suave e dura.
BSD-3-Clause . - List.H - Implementações para funções de lista vinculadas e duplamente vinculadas.
GPL-3.0-only - M*Lib - Biblioteca para contêineres genéricos, mas TypeAfe C. Implementado como apenas cabeçalho.
BSD-2-Clause - Off -Brand - Coleção de estruturas de dados genéricas e de referência.
MIT - PackedArray - Matriz de acesso aleatório de números inteiros não assinados fortemente compactados de qualquer largura desejada. Tem uma implementação otimizada para SIMD.
WTFPL - RB3PTR - Árvore vermelha -preta. Expõe quase todas as primitivas de implementação, portanto, pode ser usado para cenários como aumento, múltiplas funções de pedidos compatíveis e muito mais.
MIT - Uthash - implementação da tabela de hash de arquivo único.
BSD-1-Clause - Vector.H - Biblioteca de cabeçalho para listas digitadas.
MIT
Depuração
Porque todos nós temos que fazer isso às vezes. Várias ferramentas para tornar a depuração mais fácil ou melhor, bem como bibliotecas ou código que permitem um melhor trabalho de depuração.
- C -Reduce - ferramenta que leva um arquivo C grande com uma propriedade de interesse e produz automaticamente um arquivo C muito menor que possui a mesma propriedade. Destinado a ajudar a criar casos mínimos de demonstração de insetos em código complexo.
BSD-3-Clause - Verificador de modelo CBMC - C limitado; Uma ferramenta para verificação dos limites da matriz, segurança do ponteiro e afirmações especificadas pelo usuário.
BSD-4-Clause - CFLOW - Analisa uma coleção de arquivos de origem e imprime um fluxo de controle de gráficos de gráficos no programa.
GPL-3.0-or-later - Complexidade - ferramenta para medir a complexidade do código -fonte.
GPL-3.0-or-later - CSCOUT - Analisador de código -fonte e navegador de refatoração para programas C.
GPL-3.0-only - DDD-front-end gráfico para uma variedade de depuradores da linha de comando.
GPL-3.0-or-later - Debug - Biblioteca de um cabeçalho para mais fácil 'Printf Debugging'.
MIT - ESBMC - Verificador de modelo limitado e eficiente baseado em SMT; Uma ferramenta para verificação de programas únicos e multithread, asserções de usuário, transbordamento e segurança de ponteiro/memória.
Apache-2.0 - GDB - Depurador do Projeto GNU.
GPL-3.0-or-later - LLDB - LLVM Debugger.
NCSA - RR - Depurador que registra execuções não determinísticas para permitir a depuração determinística.
BSD-2-Clause - Valgrind - Faixa de ferramentas de análise dinâmica, incluindo um verificador de vazamento.
GPL-2.0-only
Geração de documentação
- CXREF - gera documentação em LATEX, HTML, RTF ou SGML.
GPL-2.0-only - DOCONCE - Linguagem de marcação modestamente marcada que pode ser usada para gerar uma variedade de formatos.
BSD-3-Clause - DOXYGEN - Ferramenta padrão De -Facto para gerar documentação a partir de fontes anotadas. Pode gerar uma grande variedade de formatos.
GPL-2.0-only
Editores
Editores mais extravagantes do tipo IDE. Se você deseja o editor de texto de um programador, procure em outro lugar. Além disso, o que você usa provavelmente suporta C de qualquer maneira.
- Anjuta Devstudio - Gnome IDE.
GPL-2.0-only - Código :: Blocks-IDE extensível e configurável que suporta C.
GPL-3.0-only - Codelita - IDE de plataforma cruzada.
GPL-2.0-only - Geany - IDE pequeno e rápido.
GPL-2.0-or-later - Kdevelo - KDE IDE.
GPL-2.0-only - Zinjai - IDE simples, leve e rico em recursos.
GPL-3.0-only
Motores de script incorporáveis
Quando C não é a solução certa, ou quando você precisa de um mecanismo de configuração mais dinâmico:
- Duktape - Motor JavaScript incorporável, com foco na portabilidade e
MIT de pegada compacta. - Metacall - Tempo de execução de poliglot de plataforma cruzada, que suporta NodeJs, JavaScript, TypeScript, Python, Ruby, C#, WASM, Java, COBOL e muito mais.
Apache-2.0
Estruturas
Grandes bibliotecas que fornecem estruturas de dados e outras coisas que você espera de uma biblioteca padrão 'moderna'.
- APR - Apache Portable Runtime; Outra biblioteca de funções de utilitário de plataforma cruzada.
Apache-2.0 - Algoritmos C - Coleção de algoritmos comuns e estruturas de dados.
ISC - CPL - a biblioteca comum de pipeline; Um conjunto de bibliotecas projetadas para ser um kit de ferramentas de software abrangente, eficiente e robusto.
GPL-2.0-only - EFL - Grande coleção de estruturas e funções úteis de dados. Várias licenças, todas de código aberto.
- Glib - Biblioteca de funções e estruturas de utilidade, projetadas para serem portáteis, eficientes e poderosos.
LGPL-2.1-only - KLIB - implementações pequenas e leves de algoritmos e estruturas de dados comuns.
MIT - LibCork - Funções e estruturas de utilidade, projetadas para sistemas com restrição de recursos. Pode ser incorporado.
BSD-3-Clause - Libnih - Biblioteca leve de funções e estruturas.
GPL-2.0-only - LIBU - Pequena biblioteca de utilitários básicos, incluindo alocação de memória, manipulação de string e log.
BSD-3-Clause - PBL - Grande biblioteca de serviços públicos, apresentando estruturas de dados, entre outras coisas.
LGPL-2.1-or-later - PLIBSYS - Biblioteca do sistema C de plataforma cruzada. Dependências zero de terceiros, usa apenas chamadas de sistema nativas.
MIT - QLIBC - Biblioteca simples e poderosa, projetada como um substituto para o Glib enquanto se concentra em ser pequeno e leve.
BSD-2-Clause - SC - bibliotecas comuns e estruturas de dados para C.
MIT - Tbox - Biblioteca de várias plataformas com um grande número de recursos.
Apache-2.0 - PSPSDK - Um SDK de código aberto para o desenvolvimento do PSP Homebrew. Várias licenças.
Programação de jogos
Motores, bibliotecas e outras coisas úteis especificamente para fazer jogos.
- Allegro - Plataforma cruzada, desenvolvimento de videogames e biblioteca multimídia.
Zlib - AssetKit? Biblioteca de Importador/Exportador/UTIL 3D de ativos com base nas especificações de Collada/GLTF
MIT - ASTERA - CROLGATA CRUPLATIVA CRUPLAÇÃO
MIT - CGLM -? Matemática otimizada OpenGL/Graphics (GLM) para C.
MIT - Chipmunk2D - Biblioteca de física de jogo 2D rápida e leve.
MIT - CMT -? C Lindings/Wrappers para a estrutura de gráficos metálicos da Apple.
MIT - Corange-motor de jogo em puro C.
BSD-2-Clause - CSFML - Ligação para SFML.
Zlib - Darkplaces - versão modificada do mecanismo Quake2.
GPL-2.0-only - Epóxi - Biblioteca para lidar com o gerenciamento do ponteiro da função OpenGL.
MIT - EXENGINE - MOTOR DE JOGO 3D em C99 com um modelo de partida.
MIT - FLECS - Um sistema de componentes de entidade multithread escrito para C89 e C99
MIT - FreeCell Solver - Conjunto de bibliotecas e programas de linha de comando para resolver automaticamente o Freecell e algumas variantes semelhantes do Solitaire.
MIT - Freeglut - Alternativa ao kit de ferramentas do OpenGL Utility. Permite a criação e o gerenciamento do Windows com contextos OpenGL.
X11 - GLFW - Biblioteca de várias plataformas para criar Windows com contextos OpenGL.
Zlib - Ioquake3 - Motor Quake3, finalmente libertado.
GPL-2.0-only - Kazmath - Biblioteca de Matemática para jogos.
BSD-2-Clause - Libao - Biblioteca de áudio de plataforma cruzada com uma ampla variedade de saídas.
GPL-2.0-or-later - Librg-Biblioteca de rede de jogos Pure C99 para criar soluções de cliente-servidor simples e elegante e elegante de plataforma cruzada.
Apache-2.0 - MATHC - Biblioteca de Matemática para programação 2D e 3D.
ZLib - ORX-Portátil, leve, mecanismo de jogo orientado a dados, baseado em plug-in e orientado a dados.
Zlib - Quake - mecanismo de terremoto.
GPL-2.0-only - Quake2 - motor Quake2.
GPL-2.0-only - Raylib-biblioteca simples e fácil de usar para aprender a programação de videogame.
Zlib - Retroarch - Frontend de referência para Libretro.
GPL-3.0-only - SDL2-Biblioteca de plataforma cruzada projetada para fornecer acesso de baixo nível a hardware de áudio, teclado, mouse, joystick e gráfico via OpenGL.
Zlib - SDL-GPU-Biblioteca para gráficos 2D modernos e de alto desempenho. Com base no SDL.
MIT - Biblioteca de integração Sigil - Sound, Input e Graphics; Uma alternativa simples a outras bibliotecas para fazer todas essas coisas. Várias licenças, todas de código aberto.
- UASTAR - Implementação mínima de A*.
ZLib
Gráficos
Manipulação programática de gráficos em c; Se você deseja fazer uma GUI, a seção gráfica da interface do usuário tem o que você precisa.
- AssetKit? Biblioteca de Importador/Exportador/UTIL 3D de ativos com base nas especificações de Collada/GLTF
MIT - Cairo - Biblioteca de Graphics 2D.
LGPL-2.1-only ou MPL-1.1 . - CMT -? C Lindings/Wrappers para a estrutura de gráficos metálicos da Apple.
MIT - Giflib - Biblioteca para leitura e escrita de imagens GIF.
MIT - grafeno - camada fina de tipos de dados gráficos.
MIT - Heman - Tiny Library of Image Utilities que lidam com mapas de altura, mapas normais, campos de distância e similares.
MIT - LIBCACA - Renderizador ASCII para interfaces baseadas em terminais.
WTFPL - Libgd - Biblioteca para a criação dinâmica de imagens por programadores.
MIT - LibImageQuant-Biblioteca pequena e portátil para conversão de alta qualidade de imagens RGBA em imagens coloridas indexadas de 8 bits.
GPL-3.0-or-later - Libjpeg -Turbo - Biblioteca mais rápida para leitura e gravação de arquivos JPEG. Várias licenças.
- libpng - biblioteca oficial de referência do PNG.
Libpng - LIBRSVG - Biblioteca para renderizar arquivos SVG usando o Cairo.
LGPL-2.1-or-later - Libsixel - Biblioteca implementando o protocolo Sixel, permitindo belos gráficos em seu terminal.
MIT - libspng - uma interface mais simples para ler e escrever arquivos PNG.
BSD-2-Clause - LibVips - Biblioteca de processamento de imagens.
LGPL-2.1-or-later - libxmi - biblioteca de funções para rasterizar gráficos vetoriais 2D.
GPL-3.0-or-later - Lightmapper - Biblioteca de arquivos únicos para assar Lightmap, usando um renderizador OpenGL existente. Domínio público.
- Little CMS - um sistema de gerenciamento de cores. Ele fornece transformações rápidas entre os perfis da ICC.
MIT - Mozjpeg - codificador JPEG aprimorado.
BSD-3-Clause - Nanovg - Biblioteca de desenho vetorial 2D anti -alias.
Zlib - OpenGL - Padrão da indústria para gráficos de alto desempenho, com uma ligação n nativa de C. Várias licenças.
- PLUTOVG - Uma biblioteca gráfica de vetor 2D independente no C
MIT - Sail - ⛵ A biblioteca de decodificação de imagem pequena e rápida que falta para seres humanos (não para máquinas)
MIT
Interface gráfica do usuário
Kits de ferramentas de widget, ou coisas destinadas a serem usadas de maneira semelhante a eles.
- GTK+ - Widget Toolkit de plataforma cruzada.
LGPL-2.1-only - IUP - outro kit de ferramentas de widget de plataforma cruzada.
MIT - Microui - Minúscula biblioteca de interface do usuário imediato escrito em Ansi C.
MIT portátil - Nappgui - SDK profissional para criar aplicativos de mesa de plataforma cruzada usando C.
MIT - Nuklear - pequeno, C89, kit de ferramentas de cabeça única. Domínio público.
- TinyFiledialogs - Biblioteca de arquivos únicos para diálogos simples. Compatível com muitos outros kits de ferramentas e oses.
Zlib - TK - Kit de ferramentas básico de widget. Parte de tcl/tk.
TCL - XForms Toolkit - Widget Toolkit projetado para o sistema XWindow.
LGPL-2.1-only - LVGL-GUI incorporada com elementos gráficos fáceis de usar, belos visuais e uma pegada de baixa memória.
MIT - Luigi - Uma biblioteca GUI de cabeçalho único Barebones para Win32, X11 e Essence.
MIT
Hashing
Implementações de função de hash para fins não -críprados. Os hashes criptográficos podem ser encontrados na seção criptográfica.
- CLHASH - Biblioteca implementando a função ridiculamente rápida do hash de clhash. Funciona apenas na Intel Haswell ou mais recente.
Apache-2.0 - HighwayHash - Função de hash rápida, forte e que utiliza SIMD. Também contém uma implementação do Siphash (embora isso seja mais lento).
Apache-2.0 - SPOOKYHASH - Função de hash extremamente rápida.
BSD-3-Clause - T1HA - HASH POSITIVO FASTO - Uma função portátil e rápida de hash.
BSD-3-Clause - xxhash - algoritmo de hash extremamente rápido. Vem em variedades de 32 e 64 bits.
BSD-2-Clause
Aprendizagem, referência e tutoriais
Recursos para o aprendizado de programação C em geral, ou algo útil relacionado à programação C.
Recursos de referência online
- Benchmarks do alocador de memória sem trava
- C FAQ - Comp.lang.c Perguntas frequentes
- Comparação de implementações de biblioteca padrão C/Posix para Linux
- Rascunho do padrão C89
- Rascunho do padrão C99
- Rascunho do padrão C11
- Encontrando a melhor simulação de 64 bits prng
- Padrão de codificação sei cert c
- tinyc.game - Jogos Tiny C Você pode compilar e executar agora http://tinyc.games
MIT
Recursos para iniciantes online
- Um tutorial sobre ponteiros
- Um tutorial sobre makefiles portáteis
- Projetos de construção C.
- C Wikibook de programação
- Introdução a `diversão 'c
- Aprendendo C com GDB
- Memcpy vs Memmove
- Tutorial de programação POSIX Threads (um pouco datado, mas a maioria ainda é válida e útil)
- O tutorial de programação GNU C (PDF online)
- Modelagem em c
- O que um programador C deve saber sobre a memória
- Codeforwin: Learn C Programação, Tutoriais e Exercícios de Estruturas de Dados Online
- Aprenda C: Tutorial de C de código aberto gratuito e de código aberto
- Como programar uma aventura de texto em C
Recursos intermediários online
- 8 truques do GDB que você deve saber
- 10 truques C99
- Um recurso tutorial de MPI abrangente
- Construa seu próprio editor de texto
- Mergulhando em simultaneidade: experimentando mutexes e atomics
- Contagem genérica de referência C
- Como escrever C portátil sem complicar sua construção
- Introdução ao OpenMP (vídeo)
- Tutorial OpenMP (para o padrão OpenMP3)
- Tutorial do MPI
- C escalável - Escrevendo C em larga escala distribuída C
- Alguns recursos ou truques desconhecidos na linguagem C
- O que todo programador C deve saber sobre comportamento indefinido
Recursos avançados online
- Metaprogramação avançada em C
- Um rápido tutorial sobre a implementação e depuração do MaiC, Grátis, Calloc e RealLoc
- Bit twidling hacks
- Implementando ponteiros inteligentes para a linguagem de programação C
- Funções embutidas em c
- Estruturas de controle personalizado de metaprogramação em C em C
- Resolvendo o problema de armazenamento temporário de macros C
- Alguns cantos escuros de C
- Escrevendo otimização de código C e C eficiente
- Compilando tipos de dados algébricos em C99 puro
Livros de referência
- C: Um manual de referência 5E - Livro de referência completo para C99.
- C em poucas palavras 2E - Livro de referência conciso para C11.
- C Referência de bolso - livro de referência conciso para C99.
- A linguagem de programação C 2e - livro original sobre C, por seus criadores.
Livros para iniciantes
- C Primer Plus 6E - Tutorial completo sobre programação no C11.
- C Programação: Uma abordagem moderna - excelente livro para aprender o básico de C.
- Chefe primeiro C - 'Head -First' Livro para Aprendizagem C.
Livros intermediários
- 21º século C - bom segundo livro de programação em C.
- Entendendo e usando os ponteiros C - Recurso aprofundado em ponteiros em C.
- Zeromq - livro para usar o Zeromq com C.
Livros avançados
- Expert C Programação: Segredos Deep C - Visto interessante, aprofundado e divertido para as entranhas de C.
- Modern C, terceira edição: abrange o padrão C23 - no Modern C, terceira edição, você aprenderá a aproveitar o potencial total do C usando as mais recentes ferramentas e técnicas.
Lexing e análise
Bibliotecas especificamente para análise lexical (ou Lexing) e análise sintática (ou análise).
- Flex - gerador de analisador lexical rápido.
BSD-2-Clause - GNU BISON-gerador de pastor de uso geral que converte uma gramática sem contexto anotada em uma variedade de analisadores.
GPL-3.0-or-later - Hammer - Combinadores de analisador para formatos binários.
GPL-2.0-only - MPC - Biblioteca de Combinador de Parsers.
BSD-2-Clause - OWL - Um gerador de pastores para linguagens visivelmente pushdown.
MIT - RE2C - Lexer Generator, produzindo Lexers Fast, com acesso a seus internos. Domínio público.
Gerenciamento de memória
Seja uma coleção de lixo diferente, mais rápida e rápida, qualquer coisa a ver com o gerenciamento da memória C vidas aqui.
- Boehm GC - Coleção de lixo para C. Várias licenças, todas de código aberto.
- Jemalloc - Implementação Malloc que enfatiza a prevenção de fragmentação e suporte de simultaneidade escalável.
BSD-2-Clause - Alocador de memória sem bloqueio - alocador de memória eficiente.
GPL-3.0-or-later - libcsptr - ponteiros inteligentes para C.
MIT - RPMALLOC-alocador de memória rápido, alinhado naturalmente nos limites de 32 bytes. Domínio público.
- Talloc - sistema hierárquico e de memória de referência com destruidores.
LGPL-3.0-or-later - TLSF - alocador de ajuste segregado de dois níveis; Um alocador de memória dinâmica de uso geral projetado para atender aos requisitos em tempo real. Implementação atualizada.
BSD-3-Clause
Multimídia
- Aubio - Biblioteca para análise de áudio e música.
GPL-3.0-or-later - FFMPEG - Solução completa e cruzada para gravar, converter e transmitir áudio e vídeo.
LGPL-2.1-or-later - GSTREAMER - Framework para mídia de áudio e visual.
LGPL-2.1-or-later - libmpv - biblioteca de tocador de música.
GPL-2.0-or-later - LBSNDFILE - Biblioteca para leitura e gravação de arquivos de som. Suporta muitos formatos.
LGPL-2.1-only ou LGPL-3.0-only - Libsoundio-Biblioteca para entrada e saída de áudio em tempo real. Tem uma variedade de back-ends.
MIT - LIBVLC - Biblioteca multimídia completa para codificação de áudio e vídeo, decodificação, reprodução e streaming.
GPL-2.0-only - LODEPNG - Decodificador e codificador de imagem PNG simples, não exigindo outras dependências.
BSD-3-Clause - MinImp3 - Biblioteca de cabeçalho único de decodificador MP3 leve.
CC0-1.0 - Soundpipe - Biblioteca DSP de música leve.
MIT
Rede e internet
Networking de baixo nível e coisas relacionadas à Internet. Se você deseja algo mais abrangente e de alto nível, pode querer a seção da Web Frameworks.
- ASNLC - Compilador do ASN.1 Especificações no código -fonte C.
BSD-2-Clause - Biblioteca de Hypertext Chl - C - uma biblioteca para escrever aplicativos da Web em C.
GPL-3.0-only - CZMQ - Ligação de alto nível para Zeromq.
MPL-2.0 - Dyad.c - Biblioteca de rede leve, fácil e assíncrona.
MIT - GNU ANDNS-Biblioteca de clientes e utilitários avançados, fáceis de usar e com capacidade de utilitários.
GPL-3.0-or-later - Gumbo -Parser - Biblioteca de análise HTML5 em C99.
Apache-2.0 - H20 - Um servidor HTTP de nova geração.
MIT - LLHTTP - Analisador de solicitação/resposta http.
MIT - LDNS - Biblioteca para simplificar a programação DNS.
BSD-3-Clause - LibCurl - Biblioteca de transferência de URL do lado do cliente, suportando uma ampla gama de formatos.
curl - LIBETPAN - Biblioteca de correio, fornecendo uma rede eficiente para IMAP, SMTP, POP e NNTP.
BSD-3-Clause - Libev - Mais um loop de evento.
BSD-2-Clause - Libevent - Substituição de loop de eventos para servidores de rede.
BSD-3-Clause - libhttpd - biblioteca para adicionar recursos básicos de servidor da web a um aplicativo ou dispositivo incorporado.
GPL-2.0-only - LIBHV - Biblioteca de loop de eventos de plataforma cruzada.
BSD-3-Clause - LIBIDN - Implementação das especificações StringPrep, Punycode e IDNA.
GPL-3.0-or-later - libmicrohttpd - biblioteca pequena que facilita a execução de um servidor HTTP como parte de outro aplicativo.
LGPL-2.1-or-later - Libnl -
libnl é uma coleção de bibliotecas para fornecer APIs para o protocolo NetLink (substituição do IOCTL). Seu uso primário é se comunicar com o kernel Linux, para modificar o estado de rede (interfaces, roteamento etc ...). LGPL-2.1-only - Biblioteca de servidores Libernion - HTTP, projetada para ser fácil de usar.
Apache-2.0 - LibPCAP - API fornece vários mecanismos de captura de pacotes do kernel.
BSD-3-Clause - Libquickmail - A biblioteca pretendia dar aos desenvolvedores uma maneira de enviar email de seus aplicativos. Suporta vários destinatários e acessórios para/CC/BCC sem limites de tamanho.
GPL-3.0-or-later - Libsagui - Biblioteca para servidores HTTP de plataforma cruzada.
LGPL-3.0-or-later - Libuhttpd - Uma biblioteca HTTP muito flexível, leve e totalmente assíncrona com base no Libev e Http -Parser para o Linux incorporado.
MIT - Libvncserver - bibliotecas de plataformas cruzadas para implementar o servidor VNC e/ou funcionalidade do cliente.
GPL-2.0-or-later - Libwebsock-Biblioteca de soquete da Web fácil de usar e poderosa.
LGPL-3.0-only - LIBZMQ - Core ZerOMQ Library, uma biblioteca de mensagens assíncronas de alto desempenho, destinada a uso em aplicativos distribuídos ou simultâneos. C API (back-end c ++)
GPL-3.0-or-later com exceção de vinculação estática - LWAN - Servidor HTTP experimental, escalável e de alto desempenho.
GPL-2.0-only - Mongoose - servidor web incorporado.
GPL-2.0-only - MQTT -C - Um cliente MQTT C portátil para sistemas e PCs incorporados.
MIT - Nanomsg - Implementação baseada em C do ZerOMQ.
MIT - Nng - nanomsg -next -geração - mensagens leves sem corretores.
MIT - OSIP - SIP implementação sem dependências adicionais.
LGPL-2.1-or-later - Silgy - Motor HTTP assíncrono para projetos C/C ++.
MIT - Socket99 - invólucro C99 para a API BSD Sockets.
ISC - TWITC - Mini Biblioteca para interagir com a API do Twitter OAuth.
MIT - URIPARSER - Strictly RFC 3986 Library Comburável e manuseio de Uri.
BSD-3-Clause - WSLAY - Biblioteca WebSocket. Implementa a versão 13 do Protocolo Websocket, conforme descrito na RFC 6455.
MIT - Zyre-estrutura para aplicativos ponto a ponto baseados em proximidade.
MPL-2.0
Numérico
- Apofenia - Biblioteca para computação estatística e científica.
GPL-2.0-only - ARB - Biblioteca para aritmética do intervalo de precisão arbitrária.
LGPL-2.1-or-later - Atlas - Software de álgebra linear ajustado automaticamente.
BSD-3-Clause - CLBLAS - Funções blas escritas no OpenCl.
Apache-2.0 - CMATHL - Biblioteca de matemática com uma grande variedade de funções matemáticas com suporte ao CMake Build. Procura estar perto de compatível com C89/C90 para portabilidade.
MIT - Cuba - Biblioteca para integração numérica multidimensional.
LGPL-3.0-only - FFT-C-Uma transformação de Fourier de alto desempenho do FFTPack do Netlib; embrulhado em um Formato
MIT amigável - FFTW - a transformação mais rápida de Fourier no oeste; Uma rotina de transformação de Fourier Fast Fourier altamente otimizada.
GPL-2.0-or-later - Flint - Biblioteca rápida para teoria de números; Uma biblioteca que suporta aritmética com números, polinômios, séries de poder e matrizes, entre outras.
GPL-2.0-or-later - Kit de programação linear GLPK - GNU; Um pacote projetado para resolver programação linear em larga escala, programação inteira mista e outros problemas relacionados.
GPL-3.0-or-later - GMP - biblioteca aritmética de precisão de vários múltiplos; Uma biblioteca para aritmética de precisão arbitrária.
GPL-2.0-only ou 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. Domínio público.
- LibTomPoly - Polynomial-related maths library. Domínio público.
- 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. Domínio público.
- Yeppp! - Fast, SIMD-optimized mathematical library.
BSD-3-Clause
Perfil
- 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
Serialização
- 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. Domínio público.
- stb - Range of single-file libraries. Domínio público.
- 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. Domínio público.
- 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
Outros
- 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]
Teste
- 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
Ferramentas
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. Domínio público.
- cinclude2dot - Graphs include dependencies in a project using Graphviz. GPL-1.0-or-later or
GPL-2.0-or-later or GPL-3.0-or-later - ClangCheck - Static analysis tool, designed to work with Clang.
NCSA - conan.io - Something of a package manager for C.
MIT . - Cppcheck - Static analysis tool. Despite the name, works well with C.
GPL-3.0-or-later - Glade - RAD tool to enable quick development of GTK+ GUIs.
GPL-2.0-only - GMSL - GNU Make Standard Library; a collection of additional functionality for GNU Make.
BSD-3-Clause - GNU Global - Source code tagging tool.
GPL-3.0-only - GPP - General-purpose preprocessor. More versatile than the C preprocessor, but more flexible than m4.
LGPL-3.0-or-later - Highlight - Converts source code to formatted text with nice highlighting.
GPL-3.0-only - include-what-you-use - Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it).
NCSA - incbin - Include binary files in your C/C++ applications with ease
Unlicense - indent - Formats C source code automatically to make it easier to read. Also converts from one style of source to another.
GPL-3.0-or-later - SMACK - Modular software verification toolchain and a self-contained software verifier. Currently only works with programs compiled using Clang.
MIT - unifdef - Removes #ifdef and #if directives with their delimited text without touching any other part of the file.
BSD-3-Clause or BSD-2-Clause
Utilities
A 'catch-all' category for anything that doesn't fit well anywhere else.
- ApeTagLibs - Library for working with APEv2 tags.
MIT - argparse - Command-line argument parsing library, inspired by Python's argparse module.
MIT - attr - Commands for manipulating filesystem extended attributes.
GPL-2.0-or-later - bfd - Library for manipulating binary object files. Part of GNU binutils.
GPL-3.0-or-later - Caffeine - Library for building daemons and services for Linux and FreeBSD systems.
LGPL-2.1-or-later - CException - Implementation of exceptions.
MIT - CommonMark - Implementation of the CommonMark spec.
- cosmopolitan - fast portable static native textmode containers (build C programs for LinuxMacWindows in one go) Variety of licenses, all open source.
- cpu_features - Get CPU features at runtime.
Apache-2.0 . - CRIU - Checkpoint/Restore In Userspace; a software tool (with a C API) for 'freezing' a running application to disk, then restoring it.
GPL-2.0-only or LGPL-2.1-only - D-Bus - Simple way for applications to talk to one another.
AFL-2.1 or GPL-2.0-or-later - Discount - Simple implementation of a Markdown parser.
BSD-3-Clause - dlx - Implementation of Knuth's Algorithm X, with example solvers.
GPL-3.0-or-later - docopt.c - Implementation of a command-line option parser.
MIT - dyncall - Another foreign function interface library.
MIT - GNU FreeIPMI - In-band and out-of-band IPMI implementation.
GPL-3.0-only - GNU gperf - Perfect hash function generator, given a list of strings. Outputs C code.
GPL-3.0-or-later - GNU Libffcall - Collection of libraries for building foreign function interfaces.
GPL-3.0-or-later - Hoedown - Fully standards-compliant, extension-supporting, UTF-8 aware, fast Markdown parser.
MIT - Kitsune - Efficient, general-purpose framework for dynamic software updating.
LGPL-3.0-or-later - libCello - Library introducing higher-level programming to C.
BSD-3-Clause - libcmark - Library for parsing the CommonMark dialect of Markdown.
BSD-2-Clause - libcoap - Implementation of the Constrained Application Protocol.
GPL-2.0-or-later or BSD-2-Clause - libcox - Library which permits cross-platform system calls and standard utilities across different operating systems.
BSD-2-Clause - libffi - Portable foreign-function interface library.
MIT - libgeohash - Pure C implementation of the Geohash algorithm.
BSD-3-Clause - libgit2 - Portable implementation of the Git core methods, provided as a re-entrant linkable library. Custom license.
- libgss - Generic Security Service.
GPL-3.0-or-later - libimobiledevice - Cross-platform protocol library to communicate with iThings.
LGPL-2.1-or-later - libnfc - Platform-independent Near-Field Communication library.
LGPL-3.0-only - libpostal - Library for parsing and normalization of street addresses around the world. Powered by statistical NLP and open geo data.
MIT - libtrading - Implementation of network protocols for communicating with exchanges, dark pools and other trading venues. Supports FIX, FIX/FAST and many proprietary protocols.
BSD-2-Clause - libusb - Provides generic access to USB devices.
LGPL-2.1-or-later - libuv - Cross-platform asynchronous I/O.
MIT - libvldmail - Your friendly email validation library. No external dependencies (not even regexps).
WTFPL - linenoise - Small, self-contained alternative to readline and libedit.
BSD-2-Clause - libXDGdirs - An implementation of XDG Base Directory Specification
MIT - MegaMimes - Library for getting the MIME types of a file.
MIT - ncurses - Coloured terminal UI library.
MIT - netbsd-curses - Simplified and small version of ncurses, with the same interface.
BSD-3-Clause - nope.c - Ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers).
GPL-2.0-only - obj.h - A single-header supports OOP in pure C.
MIT - parg - A single-file reimplementation of
getopt with better defaults. CC0-1.0 - pbc - Protocol buffers library.
MIT - progressbar - Easy-to-use library for displaying text progress bars.
BSD-3-Clause - rabbitmq-c - Client library for RabbitMQ.
MIT - Ragel - DSL for state machines that compiles to C.
GPL-2.0-only - rmw - safe-remove utility for the command line that can purge items from your waste directories after x number of days.
GPL-3.0-or-later - Rogueutil - Cross-platform library for creating text-based user interfaces (TUI)
Apache-2.0 - sort - Collection of sorting routines, which type-specialize at compile-time with a user-defined type.
MIT - termbox - Library for writing text-based interfaces.
MIT - tinyexpr - Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions.
BSD-3-Clause - tm - ⏱ Timer and Timeline Utils for C.
MIT - Tulip Indicators - Library of functions for technical analysis of financial data.
LGPL-3.0-or-later - whereami - One-file library for locating the current executable on the file system.
WTFPL - XLSX I/O - Cross-platform library for reading and writing .xlsx files.
MIT - xlsx_drone - Fast Microsoft Excel's *.xlsx reader.
MIT - zlog - Reliable, pure C logging library.
LGPL-2.1-only - zproto - Protocol framework for ZeroMQ.
MIT - Metalang99 - Full-blown preprocessor metaprogramming.
MIT - Datatype99 - Algebraic data types for C99.
MIT - EasyLogger - An ultra-lightweight, high-performance C/C++ log library.
MIT
Web Frameworks
Comprehensive and integrated solutions for building the next brilliant web application in C.
- Concord - A Discord API wrapper library written in C.
MIT - facil.io - Mini-framework for web applications. Includes a fast HTTP and Websocket server, and also supports custom protocols.
MIT - kcgi - CGI and FastCGI library for C
ISC . - KLone - Fully featured, multi-platform, web application development framework, targeted especially at embedded systems and appliances.
BSD-3-Clause - Kore - Easy-to-use web application framework for writing scalable web APIs in C.
ISC
Windows Environments
Technologies designed to bring Windows into the 21st century with respect to support for C.
- Cygwin - Designed to emulate a POSIX-compatible environment extensively under Windows. Various licenses, all open source.
- MinGW-w64 - Minimalist environment for C development on Windows with 64 bit support. Various licenses, all open source.
- MSYS2 - Minimal SYStem 2; aims to provide support for a POSIX environment on Windows, with a package manager based on Arch Linux's pacman. Packages have individual licenses, otherwise, as MinGW and Cygwin.