Versión china de la colección de recursos C ++
Awesome-CPP es una lista de recursos de C ++ iniciados y mantenidos fffaraz , que incluye: Biblioteca estándar, marco de aplicaciones web, inteligencia artificial, base de datos, procesamiento de imágenes, aprendizaje automático, registro, análisis de código, etc.
La versión china es mantenida y actualizada por开源前哨y el equipo 4400 Star cuenta oficial de WeChat CPP开发者.
Participantes en este proyecto
Mantenedor:开源前哨y el equipo de cuentas públicas CPP开发者WeChat. "Open Source Outpost" compartirá regularmente los últimos, interesantes y populares proyectos de código abierto en la columna Zhihu, cada proyecto tiene presentaciones y ejemplos detallados. Portal: https://www.zhihu.com/column/c_1317124962785062912
Colaboradores: CCCookieee, Jingerjoe, Yunzhongyou, Bingbin, Juliesand, Zzmarquis, Yan Minhui, Tangyouhua, Shenmian
Nota: La lista no está clasificada y se actualizará de vez en cuando
Tabla de contenido
- Biblioteca estándar
- marco
- AI
- Bucle de eventos asíncrono
- Audio
- Ecología
- compresión
- Concurrencia
- recipiente
- Criptografía
- base de datos
- depurar
- Motor de juego
- Interfaz gráfica de usuario
- Gráficos
- Procesamiento de imágenes
- Internacionalización
- Json
- registro
- Aprendizaje automático
- matemáticas
- multimedia
- red
- física
- Robótica
- Computación científica
- guion
- Publicación por entregas
- video
- Máquina virtual
- Marco de aplicaciones web
- Xml
- Múltiples mixtos
- software
- Compilador
- Compilador en línea
- depurador
- Entorno de desarrollo integrado
- Construir el sistema
- Análisis de código estático
Biblioteca estándar
La biblioteca estándar C ++ incluye contenedores STL, algoritmos y funciones.
- Biblioteca estándar C ++: es una colección de una serie de clases y funciones, escrita en un lenguaje central, y también es parte de los estándares propios de C ++ ISO.
- Biblioteca de plantillas estándar: biblioteca de plantillas estándar.
- C Biblioteca C Posix: la especificación de la biblioteca estándar C para el sistema POSIX.
- Comité de Normas ISO C ++: Comité de Normas C ++.
- La biblioteca GNU C: el propósito de este manual es mostrarle cómo usar la biblioteca GNU C.
marco
C ++ Marco general y biblioteca
- ABSEIL-CPP: Biblioteca General Abseil C ++.
- Biblioteca estándar Apache C ++: es una colección de algoritmos, contenedores, iteradores y otros componentes básicos.
- APR: Biblioteca de tiempo de ejecución portátil Apache. Otra biblioteca multiplataforma.
- ASL: la biblioteca de código fuente de Adobe proporciona revisión por pares y la biblioteca de código fuente portátil de C ++.
- Boost: una colección de una gran cantidad de bibliotecas C ++ de uso general.
- BDE: Del entorno de desarrollo del laboratorio de información de Bloomberg.
- Cinder: proporciona una comunidad de desarrollo de código abierto con codificación creativa de calidad profesional.
- Biblioteca básica de CO - C ++, incluida la biblioteca Coroutine de estilo GO, la biblioteca de registro, la biblioteca JSON, el marco RPC y otros componentes básicos.
- CXXOMFORT: una biblioteca ligera que solo contiene archivos de encabezado, puerto algunas características nuevas de C ++ 11 a C ++ 03.
- DLIB: una biblioteca C ++ universal de plataforma cruzada diseñada utilizando programación contractual y tecnología moderna de C ++.
- Eastl: EA-STL Public Part.
- ETL: Biblioteca de plantillas incrustadas.
- FFEAD-CPP: Marco de desarrollo de aplicaciones empresariales.
- Folly: una biblioteca C ++ de código abierto desarrollada y utilizada por Facebook.
- FuncionalPlus: Biblioteca de programación funcional C ++, escritura de código C ++ conciso y fácil de leer.
- GLIB: GLIB proporciona bloques de código central para bibliotecas y aplicaciones escritas en C.
- Juce: una biblioteca de clases C ++ con todo incluido para desarrollar software multiplataforma.
- Marco de KIGS: C ++ Free and Open Source Modular, multifuncional, marco de RAD multiplataforma.
- Libphenom: un marco de eventos para construir sistemas de alto rendimiento y altamente escalables.
- Libsourcey: C ++ 11 Evented IO para transmisión de video en tiempo real y aplicaciones de red de alto rendimiento.
- Libu: una biblioteca de herramientas multiplataforma escrita en lenguaje C.
- LOKI: El diseño de la biblioteca C ++, incluida la implementación de patrones de diseño comunes y modismos.
- Mili: una pequeña biblioteca C ++ que contiene solo archivos de encabezado.
- OpenFrameWorks: desarrollar kits de herramientas C ++ para la codificación creativa.
- QT: Aplicación multiplataforma y marco de interfaz de usuario.
- Razón: un marco multiplataforma que permite a los desarrolladores usar Java, .NET y Python más fácilmente, al tiempo que satisface sus necesidades para el rendimiento y las ventajas de C ++.
- Root: una serie de marcos orientados a objetos con todas las funciones que pueden procesar y analizar grandes cantidades de datos de manera muy eficiente, y son utilizados por las instituciones europeas de investigación de energía atómica.
- STLPORT: es una versión representativa de STL.
- STXXL: una biblioteca de plantilla estándar para conjuntos de datos grandes adicionales.
- Tbox: biblioteca C múltiple C similar a GLIB.
- Ultimate ++: Marco de desarrollo de aplicaciones rápidas de plataforma cruzada C ++.
- USTL: pequeña biblioteca STL.
- Biblioteca de plantilla de Windows: una biblioteca C ++ para desarrollar aplicaciones de Windows y componentes de la interfaz de usuario.
- YOM2: Metodios Multi-Multi-Múltiples, ortogonales, ortogonales, reemplazando a Yom11.
AI
- AnnetGPGPU: una biblioteca de redes neuronales artificiales basadas en GPU (CUDA).
- BTSK: Game Behavior Tree Launcher Tool.
- Objetos en evolución: una biblioteca de computación de evolución ANSI C ++ basada en plantillas puede ayudarlo a escribir su propio algoritmo de optimización aleatoria muy rápidamente.
- FRUGALMENTE DIENTA: Biblioteca C ++ usando el modelo Keras, solo archivos de encabezado.
- Genann: Simple Neural Network C Library.
- MXNET: aprendizaje profundo distribuido/móvil ligero, portátil, flexible con un planificador dinámico de gestión de datos de datos conscientes de la mutación. Adecuado para Python, R, Julia, Scala, Go, JavaScript y más.
- Pytorch: una biblioteca de Python con potente aceleración de la CPU, que incluye tensores y redes neuronales dinámicas.
- REPARTA/DETOUR: (3D) Generador de cuadrícula de navegación y búsqueda de rutas, utilizada principalmente en los juegos.
- TensorFlow: una biblioteca de software de código abierto que utiliza gráficos de flujo de datos para cálculos numéricos.
- CNTK: Microsoft Cognitive Toolkit (CNTK), una biblioteca de código abierto de herramientas de aprendizaje profundo.
- Tiny-DNN: Marco de aprendizaje profundo sin dependencia en C ++ 11, con solo archivos de encabezado.
- Veles: una plataforma distribuida para el desarrollo rápido de aplicaciones de aprendizaje profundo.
- Kaldi: Kit de herramientas de reconocimiento de voz.
Bucle de eventos asíncrono
- ASIO: una biblioteca C ++ multiplataforma para la programación de E/S subyacente y de redes subyacentes, utilizando métodos modernos de C ++ para proporcionar a los desarrolladores un modelo asincrónico consistente.
- Boost.Asio: una biblioteca C ++ multiplataforma para la programación de E/S subyacente y de redes subyacentes.
- Marco del actor C ++: una implementación de código abierto del modelo de actor en C ++.
- Libev: bucle de tiempo de alto rendimiento completo, de alto rendimiento, que imita ligeramente a Libevent, pero ya no tiene limitaciones como Libevent, y también arregla algunos de sus errores.
- Libevent: Biblioteca de notificaciones de eventos.
- LibHV: una biblioteca de bucle de evento multiplataforma.
- Libuv: E/S asíncrona multiplataforma.
- Promise-CPP: una biblioteca que implementa la promesa/A+ estándar, solo archivos de encabezado.
- UVW: encapsulador C ++ de Libuv.
Audio
Audio, sonido, música, biblioteca de música digital
- Audiofile: una biblioteca C ++ simple para leer y escribir archivos de audio.
- FMOD: Motor de audio multiplataforma fácil de usar y herramienta de creación de juegos para contenido de audio.
- KFR: marco DSP C ++ rápido, moderno, FFT, filtro FIR/IIR y conversión de frecuencia de muestreo.
- Lame: Lame es un codificador MPEG Audio tercero de Audio (MP3) de alta calidad.
- Libsndfile: Biblioteca C encapsulada C ++, utilizada para leer y escribir archivos que contienen sonidos muestreados a través de la interfaz de la biblioteca estándar.
- Libsoundio: una biblioteca C para entrada y salida de audio en tiempo real multiplataforma.
- Maximilian: biblioteca de procesamiento de señal digital de audio y música de C ++.
- Openal: Biblioteca de audio de código abierto --- API de audio multiplataforma.
- Miniaudio: una biblioteca para reproducción de audio de un solo archivo y grabación.
- Opus: un códec de audio altamente abierto, sin regalías, sin regalías.
- Portaudio: Biblioteca de E/S de audio de código abierto gratuito, multiplataforma, de código abierto.
- Sela: Audio sin pérdidas de Simplie.
- SOLOUD: motor de audio de juego simple y portátil.
- SpeEx: Código libre, descartado por Opus.
- Tónico: C ++ síntesis de audio fácil de usar y eficiente.
- Vorbis: OGG Vorbis es un formato de audio universal universal completamente abierto, no propietario y libre de regalías.
- MINIMP3: dominio público, implementación de la sala limpia decodificador de mp3, solo archivos de encabezado.
- VEROVIO: una biblioteca rápida y liviana de grabados en símbolos musicales.
- WAV2LETTER ++: Public Domain, una biblioteca de procesamiento de voz de código abierto rápida escrita completamente en C ++, utilizando la biblioteca de tensor de Arrayfire y la biblioteca de aprendizaje automático de linterna para lograr la máxima eficiencia.
Ecología
Bioinformática, genómica y biotecnología
BioC ++: Biblioteca de computación C ++ para bioinformática.
Caste: Biblioteca C ++ de código abierto para la simulación computacional de modelos matemáticos desarrollados para fisiología y biología.
LibSequence: una biblioteca C ++ para representar y analizar datos genéticos de la población.
SEQAN: algoritmos y estructuras de datos centradas en el análisis de secuencia de datos biológicos.
VCFLIB: una biblioteca C ++ para análisis y procesamiento de archivos VCF.
WHAM: Aplique pruebas asociativas directamente a las mutaciones estructurales genéticas en archivos BAM.
Bitre de bits
- Jech/DHT: una biblioteca de tabla hash distribuida de bitstream implementada por C.
- Libtorrent (también conocido como LBTorrent-RasterBar): una implementación de transmisión de bits C ++ eficiente y funcional.
- Libtorrent (también conocido como libtorrent-rakshasa): biblioteca bitstream.
- Libutp: Biblioteca de Protocolo de Transporte Utorrent.
Químico
Química, geoquímica, bioquímica
- D-SEAMS: un motor de análisis orbital de dinámica molecular con implementación de C ++ y LUA de NIX, que es la abreviatura del análisis estructural diferido de simulaciones moleculares.
- Gromacs: implementación de dinámica molecular paralela de mensajes de paso.
- Reaktoro: un marco computacional para modelar sistemas de reacción química en C ++ y Python.
- LAMMPS: Código de dinámica molecular clásica para modelado de materiales, es el acrónimo de un simulador paralelo masivo atómico/molécula a gran escala.
Interfaz de línea de comando
Interfaz de usuario de consola/terminal, interfaz de línea de comandos
- ¡Argh!: Un controlador de parámetros minimalista que solo encabezó archivos.
- Taywee / Args: Biblioteca simple de análisis de parámetros C ++ con solo archivos de encabezado.
- Boost.program_options: obtenga la biblioteca para las selecciones de programas a través de métodos comunes como líneas de comando y archivos de configuración.
- Clara: Parser de línea de comandos fácil de usar y compuesto para C ++ 11 y posterior.
- CLI: Biblioteca C ++ 14 de plataforma cruzada para interfaces de línea de comandos interactivas, con solo archivos de encabezado.
- CLI11: Biblioteca C ++ 11 de una sola o múltiples archivos para análisis de CLI simple y avanzado, con solo archivos de encabezado.
- JARRO2783/CXXOPTS: Parser de opciones de línea de comando C ++ livianas.
- Docopt.cpp: Biblioteca que genera opciones analizadas desde cadenas de documentos.
- GFLAGS: módulo de bandera de línea de comandos de C ++.
- Indicadores: Actividad Indicadores de C ++ moderno.
- Linenoise: una pequeña opción independiente para Readline y Libedit.
- Linenoise-NG: un pequeño reemplazo de línea de lectura de GNU portátil para Linux, Windows y MacOS, que es capaz de manejar los caracteres UTF-8.
- LYRA: Parser de línea de comandos fácil de usar, compuesto para C ++ 11 y posterior.
- NCURSES: interfaz de usuario terminal.
- PDCURSES: una biblioteca de dominio público con el código fuente y las bibliotecas precompiladas.
- Replxx: admite UTF-8, resaltado de sintaxis, lectura de lectura y reemplazo de Libedit, que puede funcionar en UNIX y Windows.
- Tabulado: una herramienta moderna de fabricación de mesa C ++.
- TClap: una biblioteca madura, estable y diversa para definir y acceder a los parámetros de la línea de comandos en ANSI C ++.
- Termbox: una biblioteca C para escribir interfaces de usuario basadas en texto.
compresión
Biblioteca de compresión y archivo
- BIT7Z: Biblioteca estática C ++, que proporciona una interfaz simple con DLL de 7 ZIP.
- Brotli: formato de compresión brotli, desarrollado por Google.
- BZIP2: una patente completamente gratuita, gratuita y compresión de datos de alta calidad.
- FinitestateEntropy: códecs de entropía de nueva generación: entropía de estado finito y huff ().
- Física: una biblioteca que proporciona acceso abstracto a varios archivos, utilizados principalmente en videojuegos, y la inspiración de diseño se deriva en parte del subsistema de archivos de Quake3.
- Karchive: una biblioteca para crear, leer, escribir y manipular archivos de archivos como zip y alquitrán.
- Libarchive: Biblioteca de archivo y compresión multiformato.
- LZ4: Algoritmo de compresión muy rápido.
- LZFSE: Biblioteca de compresión LZFSE y herramientas de línea de comandos.
- LZHAM: Base de datos de compresión sin pérdidas, la relación de compresión está cerca de LZMA, pero la velocidad de descompresión es mucho más rápida.
- LZMA: Formato 7Z Método de compresión predeterminado y común.
- LZMAT: Biblioteca de compresión de datos sin pérdidas en tiempo real extremadamente rápida.
- Miniz: archivo de origen C único, compacta/expandir la biblioteca de compresión, utilizando API compatible con ZLIB, el archivo ZIP Archive Read and Write, y el método de escritura PNG.
- Minizip: la última corrección de errores de Zlib, admite la expansión del disco PKware, el cifrado AES y el búfer IO.
- SMAZ: Biblioteca de compresión de personajes pequeños.
- Snappy: compresión rápida y descompresión.
- ZLIB: Biblioteca de compresión de transmisión de datos muy compacta.
- ZLIB-NG: ZLIB para sistemas de "próxima generación", integrando el reemplazo de algunas optimizaciones importantes.
- ZSTD: ZSTANDARD - Algoritmo de compresión rápido en tiempo real. Desarrollado por Facebook.
- Zziplib: proporciona permisos de lectura para archivos zip.
Concurrencia
Ejecución concurrente y lectura múltiple
- Alpaka: una biblioteca abstracta para la aceleración del núcleo paralelo.
- Arrayfire: Biblioteca GPU de uso general.
- Async ++: un marco paralelo liviano para C ++ 11, inspirado en la biblioteca Microsoft PPL y la propuesta estándar N3428 C ++.
- Boost.Com Pute: C ++ GPU Computing Library para OpenCl.
- Bolt: una biblioteca de plantilla C ++ optimizada para GPU.
- CK: primitivas concurrentes, mecanismos seguros de recuperación de memoria y estructuras de datos sin bloqueo.
- Concurrentqueue: cola concurrente sin bloqueo de múltiples productores rápidos de C ++ 11 y multiconsumer sin bloqueo.
- CPP-TaskFlow: programación paralela rápida de C ++ con dependencias de tareas.
- CUB: CUB proporciona los últimos componentes de software reutilizables para cada capa del modo de programación CUDA.
- CUDA-API-Wrappers: un encapsulador C ++ moderno ligero para la programación de API de tiempo de ejecución para GPU CUDA.
- Cupla: ejecute CUDA/C ++ API en OpenMPA, Hilos, TBB ... a través de Alpaka.
- C ++ React: Biblioteca de programación reactiva para C ++ 11.
- FiberTaskingLib: una biblioteca múltiple basada en tareas que admite gráficos de tareas con dependencias arbitrarias.
- HPX: un sistema de tiempo de ejecución C ++ universal para aplicaciones distribuidas paralelas de cualquier tamaño.
- Intel Games Task Scheduler: un marco de programación de tareas diseñado para las necesidades de los desarrolladores de juegos.
- Intel paralelo STL: implementación de Intel de C ++ 17 STL para C ++ 11 y posterior.
- Intel TBB: módulo de construcción de subprocesos Intel.
- Junction: una biblioteca C ++ para estructuras de datos concurrentes.
- Kokkos: un modelo de programación portátil para operación paralela y abstracción de memoria.
- LibCDS: una biblioteca C ++ para estructuras de datos paralelas.
- Libclsph: Biblioteca de simulación SPH de fluido SPH acelerada con GPU basada en OpenCL.
- libmill: introducir concurrencia estructural en C.
- LibDispatch: Grand Central Dispatch (GCD) desarrollado por Apple es una tecnología paralela a la tarea basada en el patrón de grupo de subprocesos. La Biblioteca LabDispatch proporciona la implementación de los servicios GCD.
- libmill: introducir concurrencia al estilo GO en C.
- Marl: Marl es un programador de tareas para hilos/fibras mixtas escritas en C ++ 11.
- Modernngpu: Modernngpu es una biblioteca de productividad para la informática general de las GPU, solo tiene archivos de encabezado C ++ escritos para CUDA. El valor único de esta biblioteca radica en sus primitivas de aceleración utilizadas para resolver problemas paralelos irregulares.
- NCCL: primitivas optimizadas para la comunicación colectiva de múltiples GPU.
- OpenCL: Abra el estándar para sistemas heterogéneos que se programan en paralelo.
- OpenMP: OpenMP API.
- Sobjectizador: un marco C ++ bastante pequeño que implementa los modos de actor, publicación de suscripción y CSP.
- Quantum: un potente marco de programador colaborativo C ++ basado en el nivel superior de Boost :: CoroUutines2.
- Raftlib: biblioteca Raftlib C ++, implementa la concurrencia de flujo de datos/flujo de datos a través de operadores C ++ similares a iOStream.
- ReaderWriterqueue: C ++ Fast Single Producer y una sola cola sin bloqueo de consumo.
- STDGPU: estructura de datos similar a STL en GPU.
- Empuje: una biblioteca de algoritmo paralelo similar a la biblioteca de plantillas estándar C ++.
- TransWarp: una biblioteca C ++ para concurrencia de tareas, solo archivos de encabezado.
- VEXCL: Biblioteca de plantilla de expresión vectorial C ++ para OpenCL/CUDA.
- Quantum: un potente marco de programador colaborativo C ++ basado en el nivel superior de Boost :: CoroUutines2.
- STAPL: Marco de programación paralelo de C ++ diseñado para funcionar en computadoras paralelas de memoria compartidas y distribuidas.
Configuración
Archivo de configuración, archivo ini
INIH: un simple analizador de archivos .ini en lenguaje C, que es muy adecuado para sistemas integrados.
INIH: La versión C ++ de INIH, solo archivos de encabezado.
IneParser: INI File Parser.
Libconfig: bibliotecas C y C ++ utilizadas para manejar archivos de configuración estructurados.
LibConfuse: la pequeña biblioteca de análisis del archivo de configuración de C.
Simpleini: una biblioteca C ++ multiplataforma que proporciona una API simple para leer y escribir archivos de configuración INI.
Toml ++: Toml Parser y Stringer, adecuados para C ++ 17 y posterior, con solo archivos de encabezado.
recipiente
- Árbol B ++: una biblioteca de plantillas que implementa contenedores de memoria de comando basados en la estructura de datos de árbol B.
- Colonia: contenedores de "bolsa" desordenados, que funcionan mejor que los contenedores estándar cuando están altamente modificados. Al mismo tiempo, siempre puede mantener un puntero permanente a un elemento no basado, independientemente de su inserción o borrado.
- Dynamic_Bitset: C ++ 17 Dynamic Bitset Collection, solo archivos de encabezado.
- Bosque: implementa bibliotecas de plantillas para AVL, Binary Search, KD y Quadtree.
- Hashmaps: implementación del algoritmo de tabla de hash abierta en C ++.
- Mapa de rayos hopas: use el algoritmo de hash de hopscotch para implementar la asignación de hash rápida para la resolución de conflictos, con solo archivos de encabezado.
- LSHBox: la caja de herramientas C ++ para algoritmos localmente sensibles (LSH) proporciona varios algoritmos LSH comunes y también puede admitir Python y Matlab.
- PGM-Index: una estructura de datos que puede encontrar rápidamente, liderar, buscar en rango y actualizar cientos de millones de matrices de elementos, utilizando el orden de gradientes en lugar de espacio en comparación con los índices tradicionales.
- PLF :: LIST: STD :: Implementación de la lista, que borra las costuras de rango para habilitar estructuras amigables para caché, lo que resulta en un rendimiento significativamente mejorado.
- PLF :: Stack: STD :: Adaptador de contenedores de pila, que tiene un mejor rendimiento en el contexto de la pila que cualquier contenedor estándar.
- ring_span lite: una implementación simplificada de Ring_span por Arthur O'Dwyer, como una vista circular tamponada.
- Robin-Hood-Hashing: una tabla de hash rápida y ahorrador de memoria para C ++ 1, basada en el algoritmo de hash de Robin Hood.
- Robin-Map: mapeo hash y hash establecido utilizando el algoritmo de hash Robin Hood.
- SPARSEPP: Mapeo de hash rápido y ahorrador de memoria para C ++.
Criptografía
Biblioteca de criptografía y cifrado
- BCRYPT: una herramienta de cifrado de archivo multiplataforma que se puede portar a todos los sistemas y procesadores operativos compatibles.
- BEECRYPT: Biblioteca de cifrado portátil y rápida.
- Botan: biblioteca de cifrado C ++.
- Crypto ++: una biblioteca C ++ gratuita para esquemas de cifrado.
- Digestpp: biblioteca de Digest de información (hash) de C ++ 11, solo archivos de encabezado.
- Gnupg: implementación completa y gratuita del estándar OpenPGP.
- GNUTLS: una biblioteca de comunicación segura que implementa los protocolos SSL, TLS y DTLS.
- LibgCrypt: una biblioteca de contraseñas universal, originalmente basada en el código CNUPG.
- Libressl: el protocolo SSL/TLS gratuito pertenece a una rama de OpenSSL en 2014.
- Libsodium: biblioteca de cifrado basada en NACI, terca y fácil de usar.
- Libhidrógeno: una biblioteca de cifrado liviana, segura y fácil de usar para entornos restringidos.
- LibtomCrypt: un kit de herramientas de cifrado bastante integral, modular y portátil.
- MBEDTLS: un código abierto, portátil, fácil de usar, legible y flexible biblioteca SSL, anteriormente conocida como PolarsSL.
- La biblioteca de cifrado subyacente de la neta.
- OpenSSL: una biblioteca de cifrado de código abierto robusta, comercial, totalmente funcional.
- Retter: una colección de criptografía relacionada con funciones hash, contraseñas, herramientas, bibliotecas y materiales.
- S2N: Implementación del protocolo TLS/SSL.
- SHA1CollisionDetection: una herramienta de biblioteca y línea de comandos para detectar conflictos SHA-1 en archivos.
- Tink: biblioteca multilingüe, multiplataforma que proporciona API seguras, fáciles de usar y difíciles de abusar.
- Tiny AES en C: C Pequeño y mediano AES128/192/256.
- TEMIS: una biblioteca de cifrado para la seguridad de los datos sin dolor, que proporciona un cifrado simétrico y asimétrico para plataformas móviles y servidores, cuidadores seguros con confidencialidad hacia adelante.
CSV
Biblioteca para analizar archivos de valor separado por comas (CSV)
- CSV2: analizador CSV rápido para C ++ moderno.
- Parser de CSV C ++ rápido: una biblioteca pequeña, fácil de usar y rápida para leer archivos CSV, incluidos solo archivos de encabezado.
- Parser CSV de Vince: Rápido, independiente, transmisión de CSV CSV con conversión de tipo opcional y estadísticas.
base de datos
Bases de datos, servidores SQL, controladores y herramientas ODBC
- Hiberlita: mapeo relacional del objeto C ++ para SQLite3.
- HIREDIS: una biblioteca de clientes C muy simple para bases de datos Redis.
- LevelDB: un repositorio de valor clave rápido escrito por Google que proporciona una asignación ordenada desde claves de caracteres a valores de cadena.
- LMDB: Almacenamiento de valor clave integrado que se ajusta a los cuatro elementos básicos de la base de datos.
- LMDB ++: C ++ 11 encapsulador para bases de datos incrustadas LMDB.
- MongoDB C Conductor: la biblioteca de clientes MongoDB de C.
- MongoDB C ++ Driver: controlador C ++ para MongDB.
- MongoDB Libbson: BONDILIDAD BSON.
- MySQL ++: un encapsulador C ++ que encapsula la API C de MySQL.
- NANODBC: un pequeño envoltorio C ++ para la API CODBC nativa de C.
- ODB: Sistema de Mapeo Relacional (ORM) de código abierto de C ++.
- Redis3m: encapsulador contratado con una interfaz C ++ limpia, etiquetas de soporte y patrones preparados.
- RockSDB: almacenamiento rápido de valores clave integrados de Facebook.
- SIMDB: alto rendimiento, memoria compartida, sin bloqueo, multiplataforma, archivo único, dependencia mínima C ++ 11 Almacenamiento de valor clave.
- Soci: Capa de abstracción de la base de datos de C ++.
- SQLite: una base de datos relacional totalmente integrada y totalmente integrada con solo unos pocos cientos de KB que pueden incluirse correctamente en su proyecto.
- SQLITEC ++: SQLITEC ++ (SQLITECPP) es un envoltorio C ++ SQLITE3 C ++ SQLITE3.
- sqlite_modern_cpp: el envoltorio C ++ 14 de la biblioteca SQLite, solo archivos de encabezado.
- SQLITE_ORM: SQLITE ORM LIGHTWETHAL LIBITRIDA para C ++ moderno, con solo archivos de encabezado.
- SQLPP11: un lenguaje específico de dominio integrado de tipo seguro para consultas SQL y produce resultados en C ++.
- TILEB: DBMS de matriz multidimensional denso y escaso de denso y escaso.
- UNQLITE: un motor NoSQL basado en cosas independientes, sin servidor, sin configuración cero.
- UPSCALEDB: Tienda de valor de clave "escrito" incrustada con interfaz de consulta incorporada.
depurar
Detección de fugas de biblioteca de depuración, memoria y recursos, pruebas unitarias
- Backward-CPP: la hermosa impresora de pistas de pila de C ++.
- Benchmark: una pequeña biblioteca de soporte de micro de referencia proporcionada por Google.
- Boost.test: Boost Test Library.
- Verifique: Marco de pruebas unitarias de C.
- Doctest: el marco de prueba más ligero para un solo archivo de encabezado C ++.
- Catch: un marco nativo de C ++ muy elegante que solo contiene archivos de encabezado para pruebas unitarias, desarrollo basado en pruebas y desarrollo basado en el comportamiento.
- Catch2: un marco nativo muy elegante y nativo de C ++ que solo contiene archivos de encabezado para pruebas unitarias, desarrollo basado en pruebas y desarrollo basado en el comportamiento.
- Celero: marco de evaluación comparativa C ++.
- CPPUTEST: C/C ++ Pruebas unitarias y marco de burla.
- Lindo: Prueba de unidad C ++ más fácil.
- CMOCKA: un marco de prueba de unidades C que admite objetos simulados.
- CPPUnit: un marco de prueba C ++ portado por JUnit.
- CTEST: controlador de prueba CMake.
- DBG-Macro: C ++ DBG (...) Macro.
- Deleaker: Herramientas para verificaciones de fugas de recursos, que incluyen memoria, GDI y fugas de manejo.
- FFF: cree un microframework para funciones pseudo-c.
- Google Mock: una biblioteca para escribir y usar clases simuladas C ++.
- Prueba de Google: Marco de prueba C ++ de Google.
- IG-DEBUGHEAP: un montón de depuración multiplataforma para rastrear errores de memoria.
- LIBTAP: Escribir pruebas en el lenguaje C.
- MemTrack: se usa para rastrear la asignación de memoria en C ++.
- Microprofile: analizador de vista de red multiplataforma.
- Minunit: el marco de prueba unitario más pequeño escrito en C, incluido en un solo archivo de encabezado.
- Mockator: complemento Eclipse CDT para objetos de costura y burla de C ++.
- Nanotímero: una clase de temporizador de plataforma cruzada simple, baja, para la evaluación comparativa.
- Nonius: marco de microbenchmarking de C ++.
- Remotry: un solo analizador de archivos C para vistas web.
- UNITTEST ++: marco de prueba de unidades C ++ ligero.
- Unidad: pruebas unitarias simples para C.
- UTEST.H: Marco de prueba de archivo de encabezado único para C y C ++.
- μT: C ++ 20 Archivo de liderazgo único/módulo único, μ (micro)/marco de prueba unitario sin macros.
- VLD: Medidor de fuga de Microsoft, un sistema de detección de fuga de memoria de código libre libre, robusto y de código abierto para Visual C ++.
Fuente
Una biblioteca para analizar y procesar archivos de fuentes.
- FontConfig: configuración de fuentes y biblioteca personalizada.
- FreeType: una biblioteca de software gratuita y disponible para representar fuentes.
- OTFCC: C Biblioteca y utilidad para analizar y escribir archivos de fuentes OpenType.
Motor de juego
- Ácido: motor de juego Vulkan de alta velocidad C ++ 17.
- Allegro: una biblioteca multiplataforma utilizada principalmente para videojuegos y programación multimedia.
- COCOS2D-X: un marco multiplataforma para construir juegos 2D, libros interactivos, demostraciones y otras aplicaciones gráficas.
- CORANGE: Un motor de juego escrito en puro C, SDL y OpenGL.
- Crown: Crown es un motor de juego universal basado en datos escrito desde cero utilizando C ++ ortodoxo con conceptos de diseño minimalistas y orientados a datos en mente.
- Delta3d: una plataforma de simulación robusta.
- Entt: La colisión entre juegos y C ++ moderno.
- Juego: un marco de juegos C ++ nativo de plataforma cruzada para crear juegos móviles y de escritorio 2D/3D.
- Godot: un motor de juego con licencia con licencia de código abierto totalmente funcional.
- Grit: Proyecto comunitario para construir un motor de juego gratuito que permita juegos en 3D en el mundo abierto.
- Halley: un motor de juego liviano escrito en C ++ 14 con un sistema de componentes físicos "reales".
- Klayge: un motor de juego de código abierto y de código abierto basado en la arquitectura enchufable.
- NCINE: un motor de juegos 2D multiplataforma que se centra en el rendimiento, escrito en C ++ 11, y también puede elegir escribir scripts usando LUA.
- OpenXray: un motor de rayos X modificado por la comunidad utilizado en la serie de juegos Stalker.
- Oxigina: motor de juego C ++ de plataforma cruzada.
- Panda3D: Game Engine, un marco para la representación 3D y el desarrollo de juegos de los programas Python y C ++.
- PixelGameEngine: el lanzamiento oficial de OlcpixelGameEngine, una herramienta para videos y proyectos de YouTube para Javidx9.
- Polycode: un marco de código abierto implementado en C ++ (vinculado a Lua) para crear juegos.
- Raylib: Biblioteca simple y fácil de usar para disfrutar de la diversión de la programación de videojuegos.
- Spring: potente, gratis, motor de juego RTS multiplataforma.
- Torque2D: un motor de código abierto, motor C ++ multiplataforma construido para el desarrollo de juegos 2D.
- Torque3D: un motor C ++ de código abierto construido para el desarrollo de juegos 3D.
- Motor de juguete: el juguete es un motor de juego C ++ modular y ligero y proporciona modismos C ++ simples y expresivos para iterar rápidamente el diseño de juegos 2D y 3D completamente funcionales.
- URHO3D: El motor de juego 2D y 3D gratuito, ligero, multiplataforma y 3D implementado por C ++ se inspiró en gran medida en Ogre y Horde3D.
Interfaz gráfica de usuario
Interfaz gráfica de usuario
- Boden: marco de GUI nativo, móvil, multiplataforma.
- CEGUI: Biblioteca de GUI multiplataforma flexible.
- Elementos: Biblioteca de GUI modular independiente de resolución liviana, de grano fino.
- FLTK: Kit de herramientas C ++ de GUI C ++ Ligero y Ligero Ligero.
- GACUI: interfaz de usuario C ++ acelerado por GPU, con herramientas de desarrollo Wysiwyg, admite XML y tiene capacidades de enlace de datos incorporadas y capacidades MVVM.
- GTK+: un conjunto de herramientas multiplataforma para crear interfaces gráficas de usuario.
- GTKMM: la interfaz C ++ oficial para la popular biblioteca GUI GTK+.
- IMGUI: una interfaz de usuario gráfica en modo real en modo real con dependencias mínimas.
- Implot: el control de dibujo en modo en tiempo real de Imgui.
- IUP: un conjunto de herramientas multiplataforma para crear interfaces gráficas de usuario.
- Libui: una biblioteca de GUI simple, portátil (pero inflexible) en C, utilizando tecnología de GUI nativa para cada plataforma que admite.
- MyGui: GUI rápido, flexible, simple.
- Nana: Nana es una biblioteca multiplataforma para la programación de GUI de estilo C ++ moderno.
- Nanogui: una biblioteca minimalista de control multiplataforma para OpenGL 3.x y más tarde.
- Nuklear: Biblioteca ANSI C GUI para archivos de encabezado único.
- Qcustomplot: control de dibujo QT sin más dependencias.
- QWT: control QT para usuarios y aplicaciones de tecnología.
- QWTPLOT3D: una biblioteca de programación C ++ rica en características basada en QT/OpenGL, esencialmente proporciona un grupo de controles 3D.
- RMLUI: Biblioteca de interfaz de usuario HTML/CSS evolucionada, rama de Librocket.
- Sciter: Sciter es un motor HTML/CSS/lenguaje de secuencias de comandos integrable diseñado para usar en la capa de UI de aplicaciones de escritorio modernas.
- Biblioteca WXWidgets C ++, que permite a los desarrolladores usar una base de código para crear aplicaciones para viudas, Mac OS X, Linux y otras plataformas.
- Yue: cree una biblioteca para aplicaciones de GUI multiplataforma nativa.
Gráficos
- Assimp: La biblioteca de importación de activos abiertos (Assimp) es una biblioteca de importación de modelo 3D multiplataforma diseñada para proporcionar una API común para diferentes formatos de archivo de activos 3D.
- BGFX: Biblioteca de renderizado de plataforma cruzada.
- Blend2D: un motor gráfico vectorial 2D alimentado por el compilador JIT.
- BS :: Framework: una biblioteca moderna C ++ 14 para el desarrollo de aplicaciones de gráficos en tiempo real.
- El Cairo: una biblioteca de gráficos 2D que admite múltiples dispositivos de salida.
- C-Turtle: una biblioteca de gráficos C ++ 11 Turtle que actúa como un envoltorio CLMG, con solo archivos de encabezado.
- Motor diligente: una biblioteca de gráficos 3D moderna, multiplataforma y de bajo nivel.
- DirectXtk: una colección de clases de ayuda utilizadas para escribir código DirectX 11.X en C ++.
- GLFW: Biblioteca de procesamiento OpenGL OpenGL simple, de plataforma.
- ADEDRAGONS: escenas 3D básicas implementadas utilizando varios motores, marcos o API.
- Horde3D un pequeño motor de renderizado y animación en 3D.
- ION: una pequeña y eficiente colección de bibliotecas para construir aplicaciones de cliente o servidor multiplataforma utilizando gráficos 3D.
- Irlicht: un motor 3D en tiempo real de alto rendimiento escrito en C ++.
- Libigl: biblioteca simple de procesamiento de geometría C ++.
- LLGL: la biblioteca de gráficos de bajo nivel (LLGL) es una capa delgada de abstracción para las API gráficas modernas.
- Magnum: C ++ 11/C ++ 14 liviano y modular Middleware gráficos para juegos y visualización de datos.
- NANOVG: Biblioteca de gráficos vectoriales 2D anti-aliasis en la parte superior de OpenGL para UI y visualización.
- Ogre 3D: un motor de representación 3D flexible orientado a la escena, en tiempo real y flexible (no un motor de juego) escrito en C ++.
- OpenScenegraph: OpenScenegraph Toolkit con alto rendimiento.
- OpenSubdiv: la biblioteca de Pixar para evaluar y representar superficies segmentadas en CPU y GPU.
- OpenVDB: una biblioteca y una herramienta para almacenar, editar y realizar bases de datos de volumen.
- Panda3d: un marco para la representación 3D y el desarrollo de juegos, escrito en Python y C ++.
- Parte: una biblioteca para procesar datos de partículas, admitiendo los formularios de archivo más comunes.
- Skia una biblioteca de gráficos 2D completos para dibujar texto, gráficos e imágenes.
- Tinyspline: biblioteca ANSI C pequeña pero poderosa para la diferencia, la transformación y la consulta de NURBS arbitrarias, las funciones B-Spline y las curvas Besel.
- URHO3D Representación multiplataforma y motor de juego.
- Yocto/GL: una biblioteca C ++ en miniatura basada en gráficos físicos para datos basados en datos.
Procesamiento de imágenes
- Boost.gil: Universal Image Library.
- CIMG: un pequeño conjunto de herramientas C ++ de código abierto para el procesamiento de imágenes.
- Cximage: una biblioteca de procesamiento y conversión de imagen para cargar, guardar, mostrar y convertir los formatos de imagen que se pueden procesar incluyen BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K.
- DLIB: Modern C ++ 11 Aprendizaje automático, visión por computadora, optimización numérica y kit de herramientas de aprendizaje profundo.
- FreeImage: biblioteca de código abierto que admite formatos de imagen comunes y otros formatos necesarios para aplicaciones multimedia ahora.
- GD: Biblioteca GD Graphics, famosa por la carga/operación de los gráficos y la generación de miniatura en PHP.
- DCMTK: kit de herramientas DICOM.
- GDCM: Biblioteca Dicom de base.
- ITK: un sistema de análisis de imágenes de código abierto de código abierto.
- Leptonica: Leptonica是一个包含软件的开源库,其广泛应用于图像处理和图形分析应用程序。
- libfacedetection: 用于图像中人脸检测的开源库,其人脸检测的速度能达到1500FPS。
- libjpeg-turbo: 使用SIMD指令来加速基线JPEG编码和解码的JPEG图像编解码器。
- libvips: 具有低内存需求的快速图像处理库。
- Magick++: ImageMagick程序的C++接口。
- MagickWnd: ImageMagick程序的C++接口。
- OpenCV: 开源计算机视觉类库。
- OpenEXR: 具有高动态范围成像的跨平台库。
- OpenImageIO: 强大的图像和纹理处理库,支持多种常见的有损和RAW格式。
- Simd: 使用SIMD的C++图像处理库: SSE,SSE2,SSE3,SSSE3,SSE4.1,SSE4.2,AVX,AVX2,AVX-512,VMX(Altivec)和VSX(Power7),NEON for ARM。
- stb-image: STB单个头文件的图像加载库。
- tesseract-ocr: OCR引擎。
- TinyEXIF: 用于JPEG的微型ISO兼容的C++ EXIF和XMP解析库。
- Video++: C++ 14高性能的视频和图像处理库。
- VIGRA: 用于图像分析通用C++计算机视觉库。
- VTK: 用于3D计算机图形学,图像处理和可视化的开源免费软件系统。
国际化
- gettext: GNU `gettext'。
- IBM ICU: 提供Unicode 和全球化支持的C、C++ 和Java库。
- libiconv: 用于不同字符编码之间的编码转换库。
- utf8.h: C和C++的单个头文件的utf8字符串函数。
- utf8proc: 干净的C库,用于处理UTF-8 Unicode数据。
进程间通信
- Apache Thrift: 高效的跨语言IPC/RPC,可在C++、Java、Python、PHP、C#和许多其它语言之间运行。最初是由Facebook开发。
- Cap'n Proto: 快速的数据交换格式和基于功能的RPC系统。
- eCAL: 发布/订阅,客户端/服务器,C++/Python/C#,各种消息协议(protobuf, capnproto ..)。
- gRPC: 高性能、开源、通用的RPC框架。
- Ice: 全面的RPC框架,支持C++、C#、Java、JavaScript、Python等。
- libjson-rpc-cpp: 用于C++服务器和客户端的JSON-RPC框架。
- nanomsg: 好几个“可扩展协议”的简单高性能实现。
- nng: nanomsg的下一代,轻量级、无代理消息的传递库。
- rpclib: 现代C++的msgpack-RPC服务器和客户端库。
- simple-rpc-cpp: C / C++函数的简单RPC封装生成器。
- WAMP: 提供RPC和发布/订阅消息传递模式。(各种实现,各种语言)
- xmlrpc-c: 基于XML和HTTP的轻量级RPC库。
Json
- Boost.PropertyTree: 属性树解析器/生成器,可用于解析XML / JSON / INI / Info文件。
- cJSON: ANSI C的超轻量级JSON解析器。
- frozen: C/C++的Json解析生成器。
- Jansson: 进行编解码和处理Json数据的C语言库。
- jbson: C++14中构建和迭代BSON data和Json 文档的库。
- JeayeSON: 非常健全的C++ JSON库,只包含头文件。
- Jsmn: C语言中的简约JSON解析器。
- json: 用于现代C++的JSON。
- JSON++: C++的JSON 解析器。
- json.h: 在C和C++中解析JSON的简单的单头文件/单源文件的解决方案。
- json-c: C中的JSON实现。
- jsoncons: 使用JSONPointer、JSONPatch、JSONPath和JMESPath的JSON和类似JSON二进制格式的C++库,只有头文件。
- JsonCpp: 可与JSON交互的C++库。
- json-parser: 用可移植的ANSI C编写的JSON解析器,占用内存非常少。
- json11: 一个迷你的C++11 JSON库。
- json-voorhees: C++的JSON库。支持C++ 11,无依赖关系,快速且对开发人员友好。
- jute: 非常简单的C++ JSON解析器。
- ibjson: C语言中的JSON解析和打印库,很容易和任何模型集成。 .
- libjson: 轻量级的JSON库。
- LIBUCL: 通用配置库解析器。
- parson: 用C编写的轻量级的JSON库。
- PicoJSON: C++中JSON解析序列化,只包含头文件。
- qt-json: 用于JSON数据和QVariant层次间的相互解析的简单类。
- QJson: 将JSON数据映射到QVariant对象的基于Qt的库。
- RapidJSON: 用于C++的快速JSON 解析生成器,包含SAX和DOM两种风格的API。
- sajson: 用于C++ 11的轻量级、高性能的JSON解析器。
- simdjson: 极快的JSON库,可以千兆字节每秒的速度解析JSON。
- taoJSON: 零依赖的C++JSON库,只包含头文件。
- ujson: µjson是一个小型、C++ 11、UTF-8、JSON的库。
- YAJL: C语言中快速流JSON解析库。
registro
- Blackhole: 基于属性的日志框架,旨在快速、模块化和高度可定制。
- Boost.Log: 设计非常模块化,并且具有扩展性。
- Easylogging++: 适用于C++ 11(或更高版本)应用程序的超轻量级、高性能的日志库。
- G3log: 具有动态接收模块的异步记录器。
- glog: Google日志模块的C++实现。
- Log4cpp: C++类库,用于灵活地添加日志到文件,系统日志,IDSA和其他地方。
- log4cplus: 易于使用的C++日志API,可提供对日志管理和配置的线程安全、灵活且任意粒度的控制。
- loguru: 轻量级的C++日志库。
- plog: C++可移植且简单的日志,少于1000行代码。
- reckless: C++低延迟、高吞吐量、异步的日志库。
- spdlog: 超级快的C++日志库,只包含头文件。
- templog: 小型、轻量级的C++ 库,可以添加日志到你的C++应用程序中。
- P7Baical: 开源、跨平台的库,用于在最小限度使用CPU和内存的情况下高速发送遥测和跟踪数据。
- Quill: 异步、跨平台、低时延的日志库。
Aprendizaje automático
- Caffe: 快速的神经网络框架。
- CCV: 基于C /缓存/核心的计算机视觉库,现代计算机视觉库。
- darknet: 用C和CUDA编写的开源神经网络框架。
- Dlib: 现代C++ 11的机器学习、计算机视觉、数值优化和深度学习的工具包。
- Fido: 用于嵌入式电子和机器人技术的高度模块化的C++机器学习库。
- flashlight: 来自Facebook AI研究中心的快速、灵活的机器学习库,其完全用C++编写,基于ArrayFire张量库。
- libsvm: 支持向量机的简单、易用、高效的库。
- MeTA: 现代C++的数据科学工具包。
- Minerva: 快速、灵活的深度学习系统。
- mlpack: 可扩展的C++机器学习库。
- OpenCV: 开源计算机视觉库。
- Recommender: 使用协同过滤进行产品推荐/建议的C语言库。
- RNNLIB: RNNLIB是用于序列学习问题的递归神经网络库。
- SHOGUN: Shogun 机器学习工具。
- sofia-ml: 用于机器学习的快速增量算法套件。
- VLFeat: VLFeat开源库实现了流行的计算机视觉算法,这些算法专门用于图像理解以及局部特征提取和匹配。
- xgboost: 用于Python、R、Java、Scala、C++等的可扩展、便携式和分布式梯度增强(GBDT,GBRT或GBM)的库。在单机、Hadoop、Spark、Flink和DataFlow上运行。
matemáticas
- Apophenia: 用于统计和科学计算的C库。
- Armadillo: 用于线性代数和科学计算的快速C++库。
- autodiff: 用于自动微分的现代、快速且富有表现力的C++库。
- blaze: 高性能的C++数学库,用于密集和稀疏算法。
- Boost.Multiprecision: 在C++中提供更高范围/精度的整数、有理数和浮点数类型,只包含头文件或者在GMP / MPFR / LibTomMath后端。
- ceres-solver: 来自谷歌的C++库,用于建模和解决大型复杂非线性最小平方问题。
- CGAL: 高效,可靠的几何算法集合。
- cml: 用于游戏和图形的免费C++数学库。
- Dlib: 现代C++11的机器学习、计算机视觉、数值优化和深度学习工具包。
- Eigen: 高级C++模板头文件库,包括线性代数,矩阵,向量操作,数值解决和其他相关的算法。
- ExprTK: C++数学表达式工具包库(ExprTk)是一个易于使用、易于集成且非常高效的运行时数学表达式解析器和评估引擎。
- Geometric Tools: 用于数学、图形、图像分析和物理学领域计算的C++库。
- GLM: 只包含头文件的C++数学库,可与OpenGL的GLSL数学匹配并互操作。
- GMTL: 数学图形模板库是一组广泛实现基本图形的工具。
- GMP: 用于个高精度计算的C/C++库,处理有符号整数,有理数和浮点数。
- Klein: 快速、SIMD优化的C++ 17几何代数库,用于点、线和平面投影、相交、连接、刚体运动等。
- linalg.h: C++的单头文件、公共域、短向量数学库。
- MIRACL: 多精度整数和有理数算法加密库。
- muparser: muParser是用C++编写的可扩展、高性能的数学表达式解析库。
- LibTomMath: 完全用C编写的免费、开源、可移植的数论多精度整数库。
- linmath.h: 精益线性数学库,主要用于图形编程。
- lp_solve: 用于制定和解决线性编程问题的库。
- OpenBLAS: 基于GotoBLAS2 1.13 BSD版本的优化BLAS库。
- QuantLibv: 用于计量金融的免费/开源库。
- StatsLib: 统计分布函数的C++库,只包含头文件。
- SymEngine: 快速符号处理库,用C++重写了SymPy的核心。
- TinyExpr: 用于解析和评估字符串中的数学表达式的C库。
- Vc: C++的SIMD矢量类。
- Versor: (快速的)几何代数的通用C++库,包括欧几里得、投影,保角、时空等。
- Wykobi: 高效、健壮且易于使用的C++库,面向C++ 2D / 3D的计算几何例程。
- xtensor: 受NumPy语法启发的C++ 14库,用于使用多维数组表达式进行数值分析。
- universal: 只包含头文件的C++ 14库,实现任意假定算数。假定数值系统是一个锥形浮点,比IEEE浮点更有效。假定数使可复现的计算科学成为可能。
内存分配
- Boehm GC: C和C++的保守的垃圾回收器。
- C Smart Pointers: (GNU)C编程语言的智能指针。
- Hoard: 快速、可扩展和节约内存的Malloc,支持Linux、Windows和Mac。
- jemalloc: 通用的malloc(3)实现,强调避免存储碎片和可扩展的并发支持。
- memory: 兼容STL的C++内存分配器库。
- memory-allocators: 自定义内存分配器,可提高动态内存分配的性能。
- mimalloc: 具有出色性能的紧凑型通用分配器。
- tgc: 用~500 LOC编写的C语言微型垃圾回收器。
multimedia
- GStreamer: 构建媒体处理组件图形的库。
- libass: ASS / SSA字幕格式的便携式字幕渲染器。
- libass: 处理多媒体内容(例如音频、视频、字幕和相关元数据)的库和工具的集合。
- LIVE555 Streaming Media: 使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库。
- libVLC: libVLC (VLC SDK)媒体框架。
- MediaInfoLib: 用于视频和音频文件中最相关的技术和标签数据的方便统一显示。
- QtAv: 基于Qt和FFmpeg的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。
- SDL: 简单直控媒体层。
- SFML: 快速,简单的多媒体库。
- TagLib: 用于读取和编辑几种流行音频格式的元数据的库。
red
- ACE: C++面向对象网络编程工具包。
- Boost.Asio: 用于网络和底层I/O编程的跨平台的C++库。
- Boost.Beast: 在C++ 11中基于Boost.Asio构建的HTTP和WebSocket。
- Breep: 基于事件的高级C++ 14点对点库。
- C++ REST SDK: C++ REST SDK(以前称为Casablanca)。
- Restbed: C++ 11异步RESTful框架。
- Restinio: 只有头文件的C++ 14库,为您提供嵌入式HTTP / Websocket服务器。
- c-ares: 用于异步DNS请求的C库。
- cpp-httplib: 单文件的C++ 11 HTTP / HTTPS服务器库,只包含头文件。
- cpp-netlib: 高级网络编程的开源库集合。
- cpp-netlib/uri: C++的URI解析器/生成器库,与RFC 3986和RFC 3987兼容。
- cpr: 现代C++ HTTP请求库,具有简单但功能强大的接口。模仿Python Requests模块。
- curlcpp: CURL(libcurl)的面向对象C++封装器。
- DPDK: 用于快速打包处理的数据平面开发工具、库和驱动程序。
- Dyad.c: C的异步网络。
- ENet: 可靠的UDP网络库。
- evpp: 具有TCP / UDP / HTTP协议的C++高性能网络。
- H2O: 优化的HTTP服务器,支持HTTP / 1.x和HTTP / 2。它也可以用作库。
- HTTP Parser: C的http请求/响应解析器。
- KCP: 快速、可靠的ARQ协议,可帮助应用程序减少网络延迟。
- libcurl: 多协议文件传输库。
- libhttpserver: 用于创建嵌入式Rest HTTP服务器(以及更多)的C++库。
- Libmicrohttpd: GNU libmicrohttpd是一个小型C库,可以轻松地将HTTP服务器作为另一个应用程序的一部分运行。
- libpcap: 用于网络流量捕获的可移植C / C++库。
- libquic: 从Chromium的QUIC实现中提取的QUIC协议库。
- librdkafka: 用于C和C++的Apache Kafka客户端库。
- libwebsockets: 提供客户端和服务器库的轻量级纯C WebSocket实现。
- lwIP: 轻量级TCP / IP堆栈。
- Mongoose :非常轻量级的网络服务器。
- MQTT-C: 适用于嵌入式系统和类PC机的便携式MQTT C客户端。
- mTCP: 用于多核系统的高度可扩展的用户级TCP堆栈。
- Muduo: 用于Linux多线程服务器的C++非阻塞网络库。
- nghttp2: HTTP / 2 C库。
- Onion: C语言HTTP服务器库,其设计为轻量级,易使用。
- PF_RING™: 高速打包处理框架。
- PicoHTTPParser: 微小、原始、快速的HTTP请求/响应解析器。
- POCO: 用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统。
- Proxygen: Facebook的C++ HTTP库集合,包括易于使用的HTTP服务器。
- RakNet: 为游戏开发人员提供的跨平台的开源C++网络引擎。
- restclient-cpp: 用于C++的简单REST客户端。它包装libcurl用于HTTP请求。
- Seasocks: 具有WebSockets支持的简单、小型的C++嵌入式Web服务器。
- Silicon: 高性能、面向中间件的C++ 14 http Web框架。
- tlse: 单个C文件的TLS 1.2 / 1.3实现,使用tomcrypt作为加密库。
- Tufão: 基于Qt构建的C++异步Web框架。
- uriparser: 严格符合RFC 3986的URI解析和处理库。
- uWebSockets: µWS是最轻量级、高效和可伸缩的WebSocket和HTTP服务器的实现之一。
- WAFer: 基于C语言的超轻型软件平台,用于可扩展的服务器端和网络应用。为C程序员考虑了node.js。
- Wangle: 客户端/服务器应用程序框架,用于构建异步的、事件驱动的现代C++服务。
- wdt: 可嵌入式库(和命令行工具),旨在通过多个TCP路径尽可能快地在2个系统之间传输数据。
- WebSocket++: 基于C++/Boost Aiso的websocket 客户端/服务器库。
- PcapPlusPlus: 跨平台的C++网络嗅探以及数据包解析和构建的框架。
- ZeroMQ: 高速,模块化的异步通信库。
Pdf
解析和处理PDF文档的库。
- libharu: 免费、跨平台、开源的软件库,用于生成PDF。
- litePDF: 创建和编辑PDF文档的库,它通过设备上下文使用GDI功能来绘制页面内容。
- MuPDF: 轻量级的PDF、XPS和电子书查看器。
- PoDoFo: 使用PDF文件格式的库。
- Poppler: 基于xpdf-3.0代码库的开源、多后端的PDF渲染库。
- Xpdf: Xpdf是一款免费的PDF查看器和工具包,包括文本提取器、图像转换器、HTML转换器等。
- DynaPDF: 易于使用的PDF生成库。
física
动力学仿真引擎
- Box2D: 2D的游戏物理引擎。
- Bullet: 3D的游戏物理引擎。
- Chipmunk: 快速、轻量级的2D游戏物理库。
- LiquidFun: 2D的游戏物理引擎。
- Newton Dynamics: 用于物理环境实时仿真的集成解决方案。
- ODE: 开放动力学引擎-开源,高性能库,模拟刚体动力学。
- ofxBox2d: Box2D开源框架包装器。
- PhysX: Nvidia开发的开源的实时物理引擎中间件SDK,作为Nvidia GameWorks软件套件的一部分。
- Project Chrono: 开源的多物理场仿真引擎。
- Quantum++: 现代的C++ 11量子计算库。
- Simbody: 高性能C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼。
- SOFA: SOFA是一个针对实时仿真的开源框架,其着重于医学仿真。
Cartografía
- Better Enums: 映射的枚举类型(字符串、迭代)。单个头文件。
- clReflect: 使用clang的C++映射。
- CPFG: 用于反射、回调和脚本绑定的C++ 03库。
- CPP-Reflection: 使用clang的C++映射。
- Magic Enum: 只包含头文件的的C++ 17库,为枚举类型(字符串、迭代)提供静态映射,可与任何枚举类型一起使用,无需任何宏或样板代码。
- magic_get: 类似std: : tuple的方法,用于用户定义类型,无需任何宏或样板代码。
- meta: C++的非侵入性且无宏的运行时映射系统,只包含头文件。
- Nameof: 只包含头文件的的C++ 17库,提供名称宏和函数以获取变量、类型、函数、宏和枚举的简单名称。
- Ponder: C++11的映射库。
- RTTR: C++11的映射库。
- visit_struct: C++中用于结构域映射的微型库。
正则表达式
- CppVerbalExpressions: C++正则表达式专家。
- CTRE: 编译时PCRE(几乎)兼容的正则表达式匹配器。
- Hyperscan: Hyperscan是Intel的高性能、多种正则表达式匹配库,提供大量正则表达式(多达数万个)的同时匹配,通常在DPI库堆栈中使用。
- Oniguruma: 现代且灵活的正则表达式库,支持多种字符编码。
- PCRE: 受Perl中正则表达式功能启发的正则表达式C库。
- PIRE: Yandex的Perl不兼容正则表达式库,可以非常快(超过400 MB / s)。
- RE2: 使用自动机理论、通过有限状态机进行的正则表达式软件库。
- SLRE: 适用于C / C++的超轻正则表达式引擎。
- sregex: 基于NFA / DFA的Perl兼容的正则表达式引擎库,不可回溯,可与大型数据流进行匹配。
机器人学
- MOOS-IvP: 一组开源C++模块,提供机器人平台的自主权,尤其是自主的海洋车辆。
- MRPT: 移动机器人编程工具包。
- PCL: 点云库是一个独立的,大规模的开放项目,用于2D/3D图像和点云处理。
- Robotics Library (RL): 一个独立的C++库,包括机器人动力学,运动规划和控制。
- RobWork: 一组C++库的集合,用于机器人系统的仿真和控制。
- ROS: 机器人操作系统,提供了一些库和工具帮助软件开发人员创建机器人应用程序。
科学计算
- AMGCL: 只包含头文件的C++库,用于解决具有代数多重网格的大型稀疏线性系统。
- FFTW: 用一维或者多维计算DFT的C语言库。
- GSL: GNU科学库。
- TileDB: 快速密集和稀疏多维数组的DBMS。
- Trilinos: 高性能的PDE解算器。
- Torch: 科学的计算框架,广泛支持将GPU放在首位的机器学习算法。
guion
- AngelScript: AngelScript是一种面向游戏的解释/编译脚本语言。
- Boost.Python: 可实现C++和Python编程语言之间的无缝互操作性的C++库。
- cppimport: 直接从Python导入C++文件!
- CppSharp: 用于将C / C++ API融合到高级语言中的工具和库。
- ChaiScript: 用于C++的易于使用的嵌入式脚本语言。
- ctypes.sh: bash的外部函数接口。
- Cython: Cython是用于Python编程语言和扩展的Cython编程语言(基于Pyrex)的优化静态编译器。它使得为Python编写C扩展就像Python本身一样容易。
- djinni: 生成跨语言类型声明和接口绑定的工具。
- Duktape: 具有紧凑脚本的嵌入式Javascript引擎。
- JavaCpp: Java和本机C++之间缺少的桥梁。
- libffi: 可移植的外部功能接口库。
- Lua: 用于配置文件和基本应用程序脚本的小型快速脚本引擎。
- LuaBridge: 轻量级、无依赖的库,用于将Lua绑定到C++。
- luacxx: 用于创建Lua绑定的C++ 11 API。
- nbind: 神奇的头文件,使您的C++库可从JavaScript进行访问。
- PHP-CPP: 使用C++构建PHP扩展的库。
- pybind11: C++ 11和Python之间的无缝可操作性。
- SIP: 用于Python v2和v3的C或C++绑定生成器。
- sol2: 具有高级功能和一流性能的C++ <-> Lua API封装器。
- SWIG: 一个可以让你的C++代码链接到JavaScript,Perl,PHP,Python,Tcl和Ruby的包装器/接口生成器。
- V7: 嵌入式的JavaScript 引擎。
- V8: 谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中。
- ChakraCore: Microsoft的JavaScript引擎,可以嵌入到nodejs中。
Publicación por entregas
- Bitsery: 只包含头文件的C++二进制序列化库。
- Bond: 用于处理模式化数据的开源、跨平台框架。
- Boost.Serialization: Boost序列化库。
- Cap'n Proto: 快速数据交换格式和RPC系统。
- cereal: C++11 序列化库。
- cppcodec: 只包含头文件的C++ 11库,具有一致、灵活的API来编码/解码base64,base32和hex。
- FlatBuffers: 内存高效的序列化库。
- MessagePack: C/C++的高效二进制序列化库,例如JSON。
- mrpt-serialization: 已版本控制的二进制或文本格式的序列化。
- nanopb: ANSI C中的小型代码大小的协议缓冲区实现。
- protobuf: 协议缓冲,谷歌的数据交换格式。
- protobuf-c: C语言的协议缓冲实现。
- SimpleBinaryEncoding: 用于低延迟应用程序的对二进制格式的应用程序信息的编码和解码。
- upb: C中的小型静态库实现。
- YAS: 非常快的序列化库,支持二进制/文本/ JSON格式。
Clasificar
- pdqsort: 破坏模式的快速排序。
- Timsort: 模板化的稳定排序功能,其性能优于基于快速排序的算法(包括std: : sort),用于反向或半排序数据。
video
- libvpx: VP8/VP9编码解码SDK。
- FFmpeg: 一个完整的,跨平台的解决方案,用于记录,转换视频和音频流。
- libde265: 开放的h.265视频编解码器的实现。
- x265: 开放的H.265视频编解码器实现。
- OpenH264: 开源H.364 编解码器。
- Theora: 免费开源的视频压缩格式。
- Vireo: Twitter的轻量级、多功能的视频处理库。
虚拟机
- CarpVM: C中有趣的VM,让我们一起来看看这个。
- MicroPython: 旨在实现单片机上Python3.x的实现。
- TinyVM: 用纯粹的ANSI C编写的小型,快速,轻量级的虚拟机。
Web应用框架
- Civetweb: 提供易于使用,强大的,C/C++嵌入式Web服务器,带有可选的CGI,SSL和Lua支持。
- C++ REST SDK: 使用现代异步C++ API设计、以本机代码进行基于云的客户端-服务器通信的Microsoft项目。
- CppCMS: 免费高性能的Web开发框架(不是CMS).。
- Crow: 一个C++微型web框架(灵感来自于Python Flask)。
- Cutelyst: 在Qt上构建的C++ Web框架,使用Catalyst(Perl)框架的简单方法。
- Drogon: 基于C++ 14/17的高性能HTTP应用程序框架。
- facil.io: 事件型、高性能的C Web框架,支持HTTP、WebSocket、SSE等。
- Kore: 使用C语言开发的用于web应用程序的超快速和灵活的web服务器/框架。
- libOnion: 轻量级的库,帮助你使用C编程语言创建web服务器。
- lwan: 实验性、可扩展的高性能HTTP服务器。
- oat++: 轻量、零依赖的框架,可创建高性能的Web服务。
- Pistache: Pistache是一个用纯C++ 11编写的C++ REST框架,没有外部依赖性。
- QDjango: 使用C++编写的,基于Qt库的web框架,试图效仿Django API,因此得此名。
- TreeFrog Framework: 基于C++和Qt的高速、全栈的Web应用程序框架,支持HTTP和WebSocket协议(带有O / R映射)。
- Wt: 开发Web应用的C++库。
XML
XML就是个垃圾,xml的解析很烦人,对于计算机它也是个灾难。这种糟糕的东西完全没有存在的理由了。-Linus Torvalds
- Boost.PropertyTree: 属性树解析器/生成器,可用于解析XML / JSON / INI / Info文件。
- Expat: 用C语言编写的xml解析库。
- Libxml2: Gnome的xml C解析器和工具包。
- libxml++: C++的xml解析器。
- Mini-XML: 用ANSI C编写的小型XML解析库。
- PugiXML: 用于C++的,支持XPath的轻量级,简单快速的XML解析器。
- RapidXml: 试图创建最快速的XML解析器,同时保持易用性,可移植性和合理的W3C兼容性。
- TinyXML: 简单小型的C++XML解析器,可以很容易地集成到其它项目中。
- TinyXML2: 简单快速的C++CML解析器,可以很容易集成到其它项目中。
- TinyXML++: TinyXML的一个全新的接口,使用了C++的许多许多优势,模板,异常和更好的异常处理。
- Xerces-C++: 用可移植的C++的子集编写的XML验证解析器。
多项混杂
一些有用的库或者工具,但是不适合上面的分类,或者还没有分类。
- access_profiler: 用于计算对c ++程序中成员变量的访问的工具。
- American fuzzy lop: aka afl-fuzz-疯狂的模糊测试工具,可在给定时间和最少示例输入的情况下自动发现错误。
- Better String: C字符串库的替代方法,它功能更强大,并且没有缓冲区溢出超限问题。还包括C++封装器。
- Boost.Signals: 托管信号和插槽系统的实现。
- CPPItertools: 受Python内建函数和itertools库启发的基于范围的循环附加组件。
- DynaMix: 允许您在运行时组成和修改对象的库。
- {fmt}: 小型、安全、快速的C++格式化库。
- FastFormat: 受log4j和Pantheios启发的快速、安全的C++格式化。
- C++ Format: C++的小型,安全和快速格式化库。
- casacore: 从aips++ 派生的一系列C++核心库。
- QtVerbalExpressions: 该Qt库基于C++ VerbalExpressions库。
- cxx-prettyprint: 用于C++容器的打印库。
- icecream-cpp: 用于调试目的的小型打印库。
- gcc-poison: 帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件。
- Kangaru: 用于C++ 11和C++ 14的依赖注入容器。
- Klib: 通用算法和数据结构的小型、轻量级实现。
- libsigc++: 用于标准C++的类型安全的回调系统。
- googlemock: 编写和使用C++模拟类的库。
- HTTP Parser: C的http请求/响应解析器。
- libcpuid: 用于x86 CPU检测盒特征提取的小型C库。
- libevil: 许可证管理器
- libnih: C函数和结构的轻量级库。
- libusb: 允许移动访问USB设备的通用USB库。
- Mach7: C++的模式匹配库。
- mio: 用于内存映射文件IO的跨平台C++ 11库,只包含头文件。
- PEGTL: 解析表达语法模板库。
- PCRE: 正则表达式C库,灵感来自于Perl中正则表达式的功能。
- Remote Call Framework: C++的进程间通信框架。
- Scintilla: 开源的代码编辑控件。
- Serial Communication Library: C++语言编写的跨平台,串口库。
- SDS: C的简单动态字符串库。
- semver.c: semver解析器,在ANSI C中呈现。
- Serial Communication Library: 跨平台,用C++编写的串行端口库。
- sigslot: C++信号/插槽库。
- SimpleSignal: 高性能C++ 11信号。
- Stage: 移动机器人模拟器。
- stdman: 格式化的C++ 11/14 stdlib手册页(来自cppreference)。
- stb: 一系列用于C / C++的单文件库。
- StrTk: 由高性能字符串处理例程组成的C++库。
- Tulip Indicators: 超过100种财务技术分析指标的C库。
- ub-canaries: 一组C / C++程序,它们试图使编译器开发未定义的行为。
- value-category-cheatsheet: 用于lvalue、rvalue等的PDF快捷键管理。
- VarTypes: C++/Qt4功能丰富,面向对象的管理变量的框架。
- ZBar: '条形码扫描器'库,可以扫描照片,图片和视频流中的条形码,并返回结果。
- ZXing: 用Java实现的开源、多格式1D / 2D条码图像处理库,带有其他语言的端口。
- pprint: 适用于现代C++的Pretty Printer。
software
用于创建开发环境的软件
Compilador
C/C++编译器列表
- 8cc: 小型C编译器。
- c: 一次编译并执行C“脚本”!
- Clang: LLVM的C编译器,支持C++ 11/14 / 1z C11,由LLVM团队开发。
- GCC: GNU编译器集合,支持C++ 11/14 / 1z C11和OpenMP。
- PCC: 非常老的C编译器,支持C99。
- Intel C++ Compiler: 由英特尔公司开发。
- LLVM: 模块化和可重用编译器和工具链技术的集合。
- Microsoft Visual C++: MSVC,由微软公司开发。
- Open WatCom: Watcom,C,C++和Fortran交叉编译器和工具。
- Oracle Solaris Studio: 适用于SPARC和x86的C、C++和Fortran编译器,支持C++ 11 ,在Linux和Solaris上可用。
- TCC: 轻量级的C语言编译器。
在线编译器
在线C/C++编译器列表
- codepad: 在线编译器/解释器,一个简单的协作工具
- coliru: 在线编译器/ shell,支持各种C++编译器。
- Compiler Explorer: 具有编译输出的交互式编译器。
- CompileOnline: 在Linux上在线编译和执行C++。
- Ideone: 在线编译器和调试工具,可编译源代码并以60多种编程语言在线执行。
- repl.it: 针对教育者、学习者和开发人员的功能强大而简单的工具和平台。
- Rextester: 在线编译器,提供几个编译器(Clang,GCC,MSVC)和几个编辑器。
- Try It Online: TIO是一系列在线解释器,可用于越来越多的实用和休闲的编程语言。
- Wandbox: 具有Boost的在线Clang / GCC编译器。
- paiza.io: 具有多个文件支持功能、Github(gist)集成和协作编辑的在线C / C++编译器。
调试器
C/C++调试器列表
- Comparison of debuggers: 来自维基百科的调试器列表。
- GDB: GNU调试器。
- LLDB: LLDB调试器。
- Metashell: 交互式模板元程序设计,其中包括MDB metadebugger。
- Valgrind: 内存调试,内存泄露检测,性能分析工具。
- x64dbg: Windows的开源x64 / x32调试器。
集成开发环境
C/C++集成开发环境列表
- Anjuta DevStudio: GNOME IDE。
- AppCode: 构建与JetBrains' IntelliJ IDEA 平台上的用于Objective-C,C,C++,Java和Java开发的集成开发环境。
- Cevelop: 基于Eclipse CDT的跨平台C和C++ IDE,带有其他插件。
- CLion: 来自JetBrains的跨平台的C/C++的集成开发环境。
- Code::Blocks: 免费C,C++和Fortran的集成开发环境。
- CodeLite: 另一个跨平台的免费的C/C++集成开发环境。
- color_coded: 用于基于libclang的vim插件。
- Dev-C++: 可移植的C/C++/C++11集成开发环境。
- Eclipse CDT: 基于Eclipse平台的功能齐全的C和C++集成开发环境。
- Geany: 轻量级的快速,跨平台的集成开发环境。
- IBM VisualAge: 来自IBM的家庭计算机集成开发环境。
- Irony-mode: 由libclang驱动的用于Emacs的C/C++微模式。
- KDevelop: 免费开源集成开发环境。
- Microsoft Visual Studio: 来自微软的集成开发环境。
- Microsoft Visual Studio Code: Microsoft提供的开源IDE。
- NetBeans: 主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。
- Qt Creator: 跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。
- rtags: C/C++的客户端服务器索引,用于跟基于clang的emacs的集成。
- Xcode: 由苹果公司开发。
- YouCompleteMe: 一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎。
- cquery: 用于vscode,emacs,vim等的C++代码完成引擎。
构建系统
- Bazel: Google提供的多语言、快速且可扩展的构建系统。
- Bear: 用于为clang工具生成编译数据库的工具。
- Buck: 用Java编写的快速构建系统,可鼓励在多种平台和语言(包括在Facebook开发和使用的C++)上创建小型、可重用模块。
- clib: C语言的软件包管理器。
- Biicode: 基于文件的简单依赖管理器。
- CMake: 跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程。
- Cget: Cmake软件包检索。
- Conan: C / C++程序包管理器,开源的。
- CPM: 基于CMake和Git的C++包管理器。
- FASTBuild: 高性能,开源的构建系统,支持高度可扩展性的编译,缓冲和网络分布。
- Hunter: CMake驱动的C++跨平台软件包管理器。
- MesonBuild: 开源构建系统,它意味着不仅要非常快,而且更重要的是要尽可能地方便用户使用。
- Ninja: 专注于速度的小型构建系统。
- Scons: 使用Python scipt 配置的软件构建工具。
- Sconsolidator: 用于Eclipse CDT的Scons构建系统集成。
- Spack: 灵活的软件包管理器,支持多个版本、配置、平台和编译器。
- SW: 跨平台的C++(和其他语言)构建系统和程序包管理器,其中包含许多可用程序包。
- tundra: 高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数。
- tup: 基于文件的构建系统,用于后台监控变化的文件。
- Premake: 配置有Lua脚本的工具,可以在Windows、Mac OS X和Linux上为Visual Studio、GNU Make、Xcode、Code::Blocks等生成项目文件。
- Vcpkg: Windows,Linux和MacOS的C++库管理器。
- waf: 用于配置、编译和安装应用程序的基于Python的框架。
- XMake: 基于Lua的C / C++的跨平台构建实用程序。
静态代码分析
提高质量,减少瑕疵的代码分析工具列表
- Cppcheck: 静态C/C++代码分析工具
- CppDepend: 通过分析和可视化代码依赖关系,定义设计规则,进行影响分析以及比较不同版本的代码,简化了对复杂C / C++代码库的管理。
- cpplint: 遵循Google C++样式指南的C++样式检查器。
- PVS-Studio: 用C、C++和C#编写的在程序源代码中进行bug检测的工具。
- cpp-dependencies: 检查C++ #include依赖关系的工具(以.dot格式创建的依赖关系图)。
- include-what-you-use: 使用clang进行代码分析的工具,可以#include在C和C++文件中。
- Infer: 用于Java、C和Objective-C的静态分析器。
- OCLint: 用于C、C++和Objective-C的静态源代码分析工具,用于提高质量,减少瑕疵。
- Clang Static Analyzer: 查找C、C++和Objective-C程序bug的源代码分析工具。
- Linticator: Pc-/FlexeLint的Eclipse CDT集成。
- IKOS: 基于抽象解释理论的C / C++静态分析器。
- List of tools for static code analysis: 来自维基百科的静态代码分析工具列表。
编码样式工具
- Artistic Style: 格式化C / C++ / C#/ Obj-C / Java代码的工具。也称为astyle。
- ClangFormat: 格式化C / C++ / Obj-C代码的工具。
- Clang-Tidy: 基于Clang的C++ linter工具。
- EditorConfig: EditorConfig帮助在不同的编辑器和IDE之间维护一致的编码样式
- Uncrustify: 代码美化器。