C++流行的开源框架和库总结

目录

引言:

标准库

框架C++通用框架和库

人工智能与机器人学习

异步事件循环

音视频多媒体

压缩压缩和归档库

并发性并发执行和多线程

容器

密码学

数据库,SQL服务器,ODBC驱动程序和工具

游戏引擎

图形与图像

国际化

Json

日志

网络

物理学与科学计算

脚本

序列化

虚拟机

Web应用框架

XML

杂项一些有用的库或者工具,但是不适合上面的分类,或者还没有分类

软件用于创建开发环境的软件

编译器与在线编译器

调试器与测试C/C++调试器列表

集成开发环境(IDE)C/C++集成开发环境列表

构建系统

静态代码分析提高质量,减少瑕疵的代码分析工具列表


引言:

        在现代软件开发中,C++作为一门功能强大的编程语言,拥有广泛的开源框架和库。这些框架和库涵盖了各种应用领域和功能需求,为开发人员提供了丰富的工具和资源。本文将对C++中流行的开源框架和库进行总结,包括标准库、框架C++通用框架和库、人工智能与机器人学习、
异步事件循环、音视频多媒体、压缩压缩和归档库、并发性并发执行和多线程、容器、密码学、
数据库,SQL服务器,ODBC驱动程序和工具、游戏引擎、图形与图像、国际化、Json、日志、机器学习、多媒体、网络、物理学与科学计算、脚本、序列化、虚拟机、Web应用框架、XML、多项混杂、编译器与在线编译器、调试器、集成开发环境(IDE)、构建系统、静态代码分析等方面的内容。下面简单介绍一下相关类别的开源软件,有需要的朋友可以参考。编写不易,有用的朋友点个赞或加粉一下万分感谢

以下总结部分开源工程供大家参考:

标准库

C++的标准库是C++核心语言的一部分,提供了许多基本的功能,如字符串处理、文件操作、容器等。它是C++开发人员必备的工具之一。

  1. C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。
  2. Standard Template Library:标准模板库。
  3. C POSIX library:POSIX系统的C标准库规范。
  4. ISO C++ Standards Committee:C++标准委员会。

框架C++通用框架和库

  1. Apache C++ Standard Library:是一系列算法,容器,迭代器和其他基本组件的集合。
  2. ASL:Adobe源代码库提供了同行的评审和可移植的C++源代码库。
  3. Boost:大量通用C++库的集合。
  4. BDE:来自于彭博资讯实验室的开发环境。
  5. Cinder:提供专业品质创造性编码的开源开发社区。
  6. Cxxomfort:轻量级的,只包含头文件的库,将C++ 11的一些新特性移植到C++03中。
  7. Dlib:使用契约式编程和现代C++科技设计的通用的跨平台的C++库。
  8. EASTL:EA-STL公共部分。
  9. ffead-cpp:企业应用程序开发框架。
  10. Folly:由Facebook开发和使用的开源C++库。
  11. JUCE:包罗万象的C++类库,用于开发跨平台软件。
  12. libPhenom:用于构建高性能和高度可扩展性系统的事件框架。
  13. LibSourcey:用于实时的视频流和高性能网络应用程序的C++11 evented IO。
  14. LibU:C语言写的多平台工具库。
  15. Loki:C++库的设计,包括常见的设计模式和习语的实现。
  16. MiLi:只含头文件的小型C++库。
  17. openFrameworks:开发C++工具包,用于创意性编码。
  18. Qt:跨平台的应用程序和用户界面框架。
  19. Reason:跨平台的框架,使开发者能够更容易地使用Java,.Net和Python,同时也满足了他们对C++性能和优势的需求。
  20. ROOT:具备所有功能的一系列面向对象的框架,能够非常高效地处理和分析大量的数据,为欧洲原子能研究机构所用。
  21. STLport:是STL具有代表性的版本。
  22. STXXL:用于额外的大型数据集的标准模板库。
  23. Ultimate++:C++跨平台快速应用程序开发框架。
  24. Windows Template Library:用于开发Windows应用程序和UI组件的C++库。
  25. Yomm11:C++11的开放multi-methods。
  26. Apache Thrift:用于构建可扩展的跨语言服务的软件框架
  27. FastFlow:基于流式编程模型的高效异构并行编程框架

人工智能与机器人学习

  1. btsk:游戏行为树启动器工具。
  2. Evolving Objects:基于模板的,ANSI C++演化计算库,能够帮助你非常快速地编写出自己的随机优化算法。
  3. Neu:C++11框架,编程语言集,用于创建人工智能应用程序的多用途软件系统。
  4. MOOS-IvP:一组开源C++模块,提供机器人平台的自主权,尤其是自主的海洋车辆。
  5. MRPT:移动机器人编程工具包。
  6. PCL:点云库是一个独立的,大规模的开放项目,用于2D/3D图像和点云处理。
  7. Robotics Library (RL):一个独立的C++库,包括机器人动力学,运动规划和控制。
  8. RobWork:一组C++库的集合,用于机器人系统的仿真和控制。
  9. ROS:机器人操作系统,提供了一些库和工具帮助软件开发人员创建机器人应用程序。
  10. Shark:C++数学库,适用于算法和机器学习
  11. libtorch:一个基于C++的PyTorch深度学习框架,旨在提供高性能和可扩展的深度学习应用程序。
  12. Caffe:快速的神经网络框架。
  13. CCV:以C语言为核心的现代计算机视觉库。
  14. mlpack:可扩展的C++机器学习库。
  15. OpenCV:开源计算机视觉库。
  16. Recommender:使用协同过滤进行产品推荐/建议的C语言库。
  17. SHOGUN:Shogun 机器学习工具。
  18. sofia-ml:用于机器学习的快速增量算法套件。

异步事件循环

  1. Boost.Asio:用于网络和底层I/O编程的跨平台的C++库。
  2. libev:功能齐全,高性能的时间循环,轻微地仿效libevent,但是不再像libevent一样有局限性,也修复了它的一些bug。
  3. libevent:事件通知库。
  4. libhv:一个类似libevent、libuv的跨平台事件循环库,提供了更简单的API接口和更丰富的协议。
  5. libuv:跨平台异步I/O。
  6. Boost.Beast:一个用于HTTP和WebSocket编程的C++库,基于Boost.Asio。
  7. ASIOHPX:一个将Boost.Asio与高性能异步并行计算框架HPX整合的库。
  8.  Proxygen:由Facebook开发的异步HTTP服务器框架,具有高性能和可扩展性。
  9. Pion:一个用于可扩展的服务器和客户端的轻量级C++网络库。
  10. Crow:一个使用C++11处理HTTP/RESTful API的微Web框架,具有高性能和易使用性。
  11. Pistache:一个高性能的用于Web服务的轻量级C++ RESTful框架,基于Asio。
  12. SeaStar:一个C++分布式应用程序框架,支持高性能的异步I/O、RPC、数据流、以及多线程任务。

音视频多媒体

  1. FMOD:易于使用的跨平台的音频引擎和音频内容的游戏创作工具。
  2. Maximilian:C++音频和音乐数字信号处理库。
  3. OpenAL:开源音频库—跨平台的音频API。
  4. Opus:一个完全开放的,免版税的,高度通用的音频编解码器。
  5. Speex:免费编解码器,为Opus所废弃。
  6. Tonic:C++易用和高效的音频合成。
  7. Vorbis:Ogg Vorbis是一种完全开放的,非专有的,免版税的通用压缩音频格式。
  8. ROXLU:通用C++库,可用于音频、视频、网络和图形方面的编程
  9. libvpx:VP8/VP9编码解码SDK。
  10. FFmpeg:一个完整的,跨平台的解决方案,用于记录,转换视频和音频流。
  11. libde265:开放的h.265视频编解码器的实现。
  12. OpenH264:开源H.364 编解码器。
  13. Theora:免费开源的视频压缩格式。
  14. GStreamer:构建媒体处理组件图形的库。
  15. LIVE555 Streaming Media:使用开放标准协议(RTP/RTCP, RTSP, SIP) 的多媒体流库。
  16. libVLC:libVLC (VLC SDK)媒体框架。
  17. QtAv:基于Qt和FFmpeg的多媒体播放框架,能够帮助你轻而易举地编写出一个播放器。
  18. SDL:简单直控媒体层。
  19. SFML:快速,简单的多媒体库。

压缩压缩和归档库

  1. bzip2:一个完全免费,免费专利和高质量的数据压缩。
  2. doboz:能够快速解压缩的压缩库。
  3. PhysicsFS:对各种归档提供抽象访问的库,主要用于视频游戏,设计灵感部分来自于Quake3的文件子系统。
  4. KArchive:用于创建,读写和操作文件档案(例如zip和 tar)的库,它通过QIODevice的一系列子类,使用gzip格式,提供了透明的压缩和解压缩的数据。
  5. LZ4:非常快速的压缩算法。
  6. LZHAM:无损压缩数据库,压缩比率跟LZMA接近,但是解压缩速度却要快得多。
  7. LZMA:7z格式默认和通用的压缩方法。
  8. LZMAT:及其快速的实时无损数据压缩库。
  9. miniz:单一的C源文件,紧缩/膨胀压缩库,使用zlib兼容API,ZIP归档读写,PNG写方式。
  10. Minizip:Zlib最新bug修复,支持PKWARE磁盘跨越,AES加密和IO缓冲。
  11. Snappy:快速压缩和解压缩。
  12. ZLib:非常紧凑的数据流压缩库。
  13. ZZIPlib:提供ZIP归档的读权限。

并发性并发执行和多线程

  1. Boost.Compute:用于OpenCL的C++GPU计算库。
  2. Bolt:针对GPU进行优化的C++模板库。
  3. C++React:用于C++11的反应性编程库。
  4. Intel TBB:Intel线程构件块。
  5. Libclsph:基于OpenCL的GPU加速SPH流体仿真库。
  6. OpenCL:并行编程的异构系统的开放标准。
  7. OpenMP:OpenMP API。
  8. Thrust:类似于C++标准模板库的并行算法库。
  9. HPX:用于任何规模的并行和分布式应用程序的通用C++运行时系统。
  10. VexCL:用于OpenCL/CUDA 的C++向量表达式模板库。

容器

  1. C++ B-tree:基于B树数据结构,实现命令内存容器的模板库。
  2. Hashmaps:C++中开放寻址哈希表算法的实现。
  3. Google Sparsehash:一个用于C++的高效率稀疏哈希表实现,可用于缓存和高速查找等。
  4. Tsl Hopscotch Map:一个优化的哈希表实现,可以提高键值对的查找和迭代速度。
  5. Google BTree:一个高效的C++内存型B-树模板库,可以用于容器类应用程序。
  6. HdrHistogram:一个用于C++的高动态范围直方图类库,可用于度量和分析系统性能。
  7. Boost.MultiIndex:一个多关键字容器库,可以用于构建数据库、缓存和索引等应用程序。
  8. Ttree:一个开源持久化内存btree和xdb的C++实现,支持很强的事务性和容错性。

密码学

  1. Bcrypt:一个跨平台的文件加密工具,加密文件可以移植到所有可支持的操作系统和处理器中。
  2. BeeCrypt:。
  3. Botan:C++加密库。
  4. Crypto++:一个有关加密方案的免费的C++库。
  5. GnuPG:OpenPGP标准的完整实现。
  6. GnuTLS:实现了SSL,TLS和DTLS协议的安全通信库。
  7. Libgcrypt:
  8. libmcrypt:
  9. LibreSSL:免费的SSL/TLS协议,属于2014 OpenSSL的一个分支。
  10. LibTomCrypt:一个非常全面的,模块化的,可移植的加密工具。
  11. libsodium:基于NaCI的加密库,固执己见,容易使用。
  12. Nettle:底层的加密库。
  13. OpenSSL:一个强大的,商用的,功能齐全的,开放源代码的加密库。
  14. Tiny AES128 in C:用C实现的一个小巧,可移植的实现了AES128ESB的加密算法。
  15. GmSSL:支持国密SM2/SM3/SM4算法的OpenSSL分支。

数据库,SQL服务器,ODBC驱动程序和工具

  1. hiberlite:用于Sqlite3的C++对象关系映射。
  2. Hiredis:用于Redis数据库的很简单的C客户端库。
  3. LevelDB:快速键值存储库。
  4. LMDB:符合数据库四大基本元素的嵌入键值存储。
  5. MySQL++:封装了MySql的C API的C++ 包装器。
  6. RocksDB:来自Facebook的嵌入键值的快速存储。
  7. SQLite:一个完全嵌入式的,功能齐全的关系数据库,只有几百KB,可以正确包含到你的项目中。
  8. FastDB是一款C++作为编写语言的面向对象的关系型数据库管理系统(RDBMS),它是一个高性能、面向对象的数据库系统。
  9. Firebird SQL:一个功能齐全的跨平台关系数据库管理系统(RDBMS),支持多用户、网络应用程序。
  10. MongoDB C++ Driver:一个用于MongoDB的C++驱动程序,提供了快速、简单、强大的API来与MongoDB进行交互。
  11. Couchbase C++ SDK:一个基于C++的框架,用于与Couchbase NoSQL数据库进行通信。
  12. Cassandra C++ Driver:一个用于Apache Cassandra的C++驱动程序,提供了高性能、易使用、可扩展的API来与Cassandra进行交互。
  13. OrientDB:一个用于图数据库的C++框架,支持多种存储、多个模型、SQL和API查询等等。

游戏引擎

  1. Cocos2d-x:一个跨平台框架,用于构建2D游戏,互动图书,演示和其他图形应用程序。
  2. Grit:社区项目,用于构建一个免费的游戏引擎,实现开放的世界3D游戏。
  3. Irrlicht:C++语言编写的开源高性能的实时#D引擎。
  4. Polycode:C++实现的用于创建游戏的开源框架(与Lua绑定)。
  5. Godot Engine:一款基于C++编写的2D和3D跨平台游戏引擎,具有节点体系结构和可视化编辑器。
  6. Urho3D:一款用于创建高质量3D游戏的C++游戏引擎,包含各种图形、物理、声音等模块。
  7.  OGRE:一个高性能的3D游戏引擎,用于构建实时应用、模拟和可视化。
  8. Horde3D:一个基于C++编写的轻量级3D渲染引擎,支持高效的渲染、灯光和物理效果。
  9.  Crystal Space:一个C++游戏引擎,用于创建2D和3D游戏和可视化应用程序。
  10. Panda3D:一个C++游戏引擎,具有全面的3D图形能力、跨平台支持、内部Python编程语言和可视化开发环境。
  11.  G3D Innovation Engine:一个高性能2D和3D渲染引擎,支持多个平台和大多数操作系统。

图形与图像

  1. CEGUI:很灵活的跨平台GUI库。
  2. FLTK:快速,轻量级的跨平台的C++GUI工具包。
  3. GTK+:用于创建图形用户界面的跨平台工具包。
  4. gtkmm:用于受欢迎的GUI库GTK+的官方C++接口。
  5. imgui:拥有最小依赖关系的立即模式图形用户界面。
  6. libRocket:libRocket 是一个C++ HTML/CSS 游戏接口中间件。
  7. MyGUI:快速,灵活,简单的GUI。
  8. Ncurses:终端用户界面。
  9. QCustomPlot:没有更多依赖关系的Qt绘图控件。
  10. Qwt:用户与技术应用的Qt控件。
  11. QwtPlot3D:功能丰富的基于Qt/OpenGL的C++编程库,本质上提供了一群3D控件。
  12. OtterUI:OtterUI 是用于嵌入式系统和互动娱乐软件的用户界面开发解决方案。
  13. PDCurses:包含源代码和预编译库的公共图形函数库。
  14. wxWidgets:C++库,允许开发人员使用一个代码库可以为widows, Mac OS X,Linux和其他平台创建应用程序。
  15. bgfx:跨平台的渲染库。
  16. Cairo:支持多种输出设备的2D图形库。
  17. Horde3D:一个小型的3D渲染和动画引擎。
  18. magnum:C++11和OpenGL 2D/3D 图形引擎。
  19. Ogre 3D:用C++编写的一个面向场景,实时,灵活的3D渲染引擎(并非游戏引擎)。
  20. OpenSceneGraph:具有高性能的开源3D图形工具包。
  21. Graph-tool:用于网络分析和图形计算的C++库
  22. Panda3D:用于3D渲染和游戏开发的框架,用Python和C++编写。
  23. Skia:用于绘制文字,图形和图像的完整的2D图形库。
  24. urho3d:跨平台的渲染和游戏引擎。
  25. Boost.GIL:通用图像库。
  26. CImg:用于图像处理的小型开源C++工具包。
  27. CxImage:用于加载,保存,显示和转换的图像处理和转换库,可以处理的图片格式包括 BMP, JPEG, GIF, PNG, TIFF, MNG, ICO, PCX, TGA, WMF, WBMP, JBG, J2K。
  28. FreeImage:开源库,支持现在多媒体应用所需的通用图片格式和其他格式。
  29. GDCM:Grassroots DICOM 库。
  30. ITK:跨平台的开源图像分析系统。
  31. Magick++:ImageMagick程序的C++接口。
  32. MagickWnd:ImageMagick程序的C++接口。
  33. OpenCV:计算机视觉库,可用于图像和视频处理、机器学习和深度学习
  34. tesseract-ocr:OCR引擎。
  35. VIGRA:用于图像分析通用C++计算机视觉库。
  36. VTK:用于3D计算机图形学,图像处理和可视化的开源免费软件系统。

国际化

  1. gettext:GNU gettext。
  2. IBM ICU:提供Unicode 和全球化支持的C、C++ 和Java库。
  3. libiconv:用于不同字符编码之间的编码转换库。
  4. Boost.Locale:一个用于本地化应用程序的C++库,提供多种本地化特性和多样化文化信息的支持。
  5. libintl:一个C++国际化库,包括多语言支持、字符编码转换和国际化支持等。
  6.  Qt Internationalization:由Qt提供的本地化项目,支持Unicode、多字节编码、本地日期和时间等各种特性。
  7. Polyglot:一个高效的C++本地化和国际化库,支持多种格式和本地化方案。
  8.  gettext-po:一个广泛使用的C++库,支持多语言的国际化和本地化功能。
  9.  ICU:一个Unicode和全球化支持的C++、C和Java库,提供Unicode字符处理、文本转换、本地化和文化特性等方面的支持。

Json

  1. frozen:C/C++的Json解析生成器。
  2. Jansson:进行编解码和处理Json数据的C语言库。
  3. jbson:C++14中构建和迭代BSON data,和Json 文档的库。
  4. JeayeSON:非常健全的C++ JSON库,只包含头文件。
  5. JSON++:C++ JSON 解析器。
  6. json-parser:用可移植的ANSI C编写的JSON解析器,占用内存非常少。
  7. json11:一个迷你的C++11 JSON库。
  8. jute:非常简单的C++ JSON解析器。
  9. ibjson:C语言中的JSON解析和打印库,很容易和任何模型集成。
  10. libjson:轻量级的JSON库。
  11. PicoJSON:C++中JSON解析序列化,只包含头文件。
  12. qt-json:用于JSON数据和 QVariant层次间的相互解析的简单类。
  13. QJson:将JSON数据映射到QVariant对象的基于Qt的库。
  14. RapidJSON:用于C++的快速JSON 解析生成器,包含SAX和DOM两种风格的API。
  15. YAJL:C语言中快速流JSON解析库。
  16. json:一个现代 C++ JSON解析库。语法更直观,集成更简单,经过严格测试的同时对内存效率、速度有深入地考虑。

日志

  1. Boost.Log:设计非常模块化,并且具有扩展性。
  2. easyloggingpp:C++日志库,只包含单一的头文件。
  3. Log4cpp:一系列C++类库,灵活添加日志到文件,系统日志,IDSA和其他地方。
  4. templog:轻量级C++库,可以添加日志到你的C++应用程序中。
  5. spdlog:高性能,只包含头文件。
  6. Poco::Logging:基于Poco的C++日志库,包括控制台、文件和系统日志等输出方式。
  7. Loguru:一个轻量级的、头文件级别的C++日志库,提供简单、易用的API。
  8. G3log:高性能、异步的C++日志库,支持多线程并发写入。
  9.  DlLog:轻量级的C++日志库,提供易用的API和多行支持。
  10. Yalog:一个简单、快速、高效的C++日志库,提供了快速输出和灵活的日志模式。

网络

  1. HPSocket:国产网络库的佼佼者基于C++语言开发的高性能网络库,可以用来快速构建高性能可靠的TCP/UDP/HTTP/WebSocket等应用程序。
  2. ACE:C++面向对象网络编程工具包。
  3. Boost.Asio:用于网络和底层I/O编程的跨平台的C++库。
  4. Casablanca:C++ REST SDK。
  5. cpp-netlib:高级网络编程的开源库集合。
  6. Dyad.c:C语言的异步网络。
  7. libcurl:多协议文件传输库。
  8. Mongoose:非常轻量级的网络服务器。
  9. Muduo:用于Linux多线程服务器的C++非阻塞网络库。
  10. net_skeleton:C/C++的TCP 客户端/服务器库。
  11. nope.c:基于C语言的超轻型软件平台,用于可扩展的服务器端和网络应用。对于C编程人员,可以考虑node.js。
  12. Onion:C语言HTTP服务器库,其设计为轻量级,易使用。
  13. POCO:用于构建网络和基于互联网应用程序的C++类库,可以运行在桌面,服务器,移动和嵌入式系统。
  14. RakNet:为游戏开发人员提供的跨平台的开源C++网络引擎。
  15. Tuf o:用于Qt之上的C++构建的异步Web框架。
  16. WebSocket++:基于C++/Boost Aiso的websocket 客户端/服务器库。
  17. ZeroMQ:高速,模块化的异步通信库。
  18. OpenMPI:高性能的跨平台消息传递接口库,用于构建并行应用程序
  19. OpenMesh:一个通用的网格数据结构和算法库,提供了各种网格操作和算法,使得其在许多领域中使用广泛,如计算机动画、机械工程、建筑设计等。

物理学与科学计算

  1. Box2D:2D的游戏物理引擎。
  2. Bullet:3D的游戏物理引擎。
  3. Chipmunk:快速,轻量级的2D游戏物理库。
  4. LiquidFun:2D的游戏物理引擎。
  5. ODE:开放动力学引擎-开源,高性能库,模拟刚体动力学。
  6. ofxBox2d:Box2D开源框架包装器。
  7. Simbody:高性能C++多体动力学/物理库,模拟关节生物力学和机械系统,像车辆,机器人和人体骨骼。
  8. LAMMPS:分子动力学模拟框架,支持多种粒子模拟方法
  9. FFTW:用一维或者多维计算DFT的C语言库。
  10. GSL:GNU科学库。
  11. Armadillo:高质量的C++线性代数库,速度和易用性做到了很好的平衡。语法和MatlAB很相似。
  12. blaze:高性能的C++数学库,用于密集和稀疏算法。
  13. ceres-solver:来自谷歌的C++库,用于建模和解决大型复杂非线性最小平方问题。
  14. CGal:高效,可靠的集合算法集合。
  15. cml:用于游戏和图形的免费C++数学库。
  16. Eigen:高级C++模板头文件库,包括线性代数,矩阵,向量操作,数值解决和其他相关的算法。
  17. GMTL:数学图形模板库是一组广泛实现基本图形的工具。
  18. GMP:用于个高精度计算的C/C++库,处理有符号整数,有理数和浮点数
  19. Geant4: 粒子探测器模拟引擎。
  20. libsequence:用于表示和分析群体遗传学数据的C++库。
  21. SeqAn:专注于生物数据序列分析的算法和数据结构。
  22. Vcflib:用于解析和处理VCF文件的C++库。
  23. Wham:直接把联想测试应用到BAM文件的基因结构变异。

脚本

  1. ChaiScript:用于C++的易于使用的嵌入式脚本语言。
  2. Lua:用于配置文件和基本应用程序脚本的小型快速脚本引擎。
  3. luacxx:用于创建Lua绑定的C++ 11 API。
  4. SWIG:一个可以让你的C++代码链接到JavaScript、Perl、PHP、Python、Tcl和Ruby的包装器/接口生成器。
  5. V7:嵌入式的JavaScript 引擎。
  6. V8:谷歌的快速JavaScript引擎,可以被嵌入到任何C++应用程序中。
  7.  AngelScript:一个高度可定制、易于使用和快速的脚本引擎,支持多种编程语言特性,如继承、多态和内存管理。
  8.  Squirrel:一个灵活而强大的脚本引擎,适用于游戏脚本、嵌入式系统和其他应用程序的开发。
  9. CPython:一个流行的、高效的Python解释器,具有广泛的库和生态系统,支持多种平台和应用程序。
  10. Duktape:一个小型、快速的嵌入式JavaScript解释器,适用于嵌入式设备和资源受限的环境。
  11. ChakraCore:微软开发的JavaScript引擎,可用于支持嵌入式脚本编程。

序列化

  1. Cap’n Proto:快速数据交换格式和RPC系统。
  2. cereal:C++11 序列化库。
  3. FlatBuffers:内存高效的序列化库。
  4. MessagePack:C/C++的高效二进制序列化库,例如 JSON。
  5. protobuf:协议缓冲,谷歌的数据交换格式。
  6. protobuf-c:C语言的协议缓冲实现。
  7. SimpleBinaryEncoding:用于低延迟应用程序的对二进制格式的应用程序信息的编码和解码。
  8. Thrift:高效的跨语言IPC/RPC,用于C++,Java,Python,PHP,C#和其它多种语言中,最初由Twitter开发。
  9. HessianCpp:C++版本的通用二进制协议,用于用于远程过程调用(RPC)和数据序列化等。
  10. Apache Avro:一种数据序列化系统,旨在支持大型分布式系统中的高阶通信。
  11. Apache Arrow:一种跨语言的其他格式编码,包括基于列式内存多级别的序列化格式。
  12. Binn:一种快速、小型、轻量级的二进制格式,可用于网络数据传输和本地存储,支持多种编程语言。
  13. YAS:一个高速的、可扩展的序列化和反序列化库,支持STL容器和用户自定义数据类型。
  14. S11n:一种通用的序列化框架,支持其它多个编程语言以及自定义序列化事务的转储、打印和跨语言进行序列化。

虚拟机

  1. CarpVM:C中有趣的VM,让我们一起来看看这个。
  2. MicroPython:旨在实现单片机上Python3.x的实现。
  3. TinyVM:用纯粹的ANSI C编写的小型,快速,轻量级的虚拟机。
  4. LLVM:一个支持多种编程语言和体系结构的现代化编译器基础架构,包括虚拟机和即时编译器。
  5. Parrot VM:一个灵活、可扩展、高性能的虚拟机,支持多种编程语言和中间代码格式。
  6. JUCE:一个跨平台的C++框架,包括虚拟机和音乐合成器,适用于开发多媒体、音频和GUI应用程序。
  7. QEMU:这是一个功能强大的模拟器和虚拟机,它支持多种处理器架构,并提供了硬件模拟功能。
  8. Theora:虽然它本身是一个视频压缩格式,但项目也涉及虚拟机技术。它可以作为一个学习虚拟机实现和视频编码技术的开源项目
  9. Java HotSpot VM:虽然它是Java虚拟机的一个实现,但它的许多部分是用C++编写的。HotSpot VM提供了许多高级功能,如即时编译(JIT)和垃圾回收,这些都是虚拟机技术的重要组成部分。
  10.  Cello:一个类型安全、内存安全的、嵌入式的虚拟机,具有小型、灵活、可扩展的特性。

Web应用框架

  1. Civetweb:提供易于使用,强大的,C/C++嵌入式Web服务器,带有可选的CGI,SSL和Lua支持。
  2. CppCMS:免费高性能的Web开发框架(不是 CMS)。
  3. Crow:一个C++微型web框架(灵感来自于Python Flask)。
  4. Kore:使用C语言开发的用于web应用程序的超快速和灵活的web服务器/框架。
  5. libOnion:轻量级的库,帮助你使用C编程语言创建web服务器。
  6. QDjango:使用C++编写的,基于Qt库的web框架,试图效仿Django API,因此得此名。
  7. Wt:开发Web应用的C++库。

XML

XML是一种用于描述数据的标记语言,经常在计算机应用程序和互联网中被使用。开源的C++项目中一些用于XML的处理和解析的库和工具:

  1. Expat:用C语言编写的XML解析库。
  2. Libxml2:Gnome的XML C解析器和工具包。
  3. libxml++:C++的XML解析器。
  4. PugiXML:用于C++的,支持XPath的轻量级,简单快速的XML解析器。
  5. RapidXml:试图创建最快速的XML解析器,同时保持易用性,可移植性和合理的W3C兼容性。
  6. TinyXML:简单小型的C++XML解析器,可以很容易地集成到其它项目中。
  7. TinyXML2:简单快速的C++CML解析器,可以很容易集成到其它项目中。
  8. TinyXML++:TinyXML的一个全新的接口,使用了C++的许多许多优势,模板,异常和更好的异常处理。
  9. Xerces-C++:用可移植的C++的子集编写的XML验证解析器。
  10. Xalan-C++:一个跨平台的XSLT处理器,支持XSLT 1.0、XPath 1.0和XSLT 2.0。
  11. Expat:一个使用C语言编写的XML解析库,用于解析XML文档和DTD。
  12.  Libstudxml:一个基于C++11的XML解析器,支持Unicode和DTD解析,并具有灵活的扩展性。
  13. XML Security Library:一个开源的、跨平台的XML安全性库,提供数字签名、加密和XML处理功能。

杂项一些有用的库或者工具,但是不适合上面的分类,或者还没有分类

  1. C++ Format:C++的小型,安全和快速格式化库。
  2. casacore:从aips++ 派生的一系列C++核心库。
  3. cxx-prettyprint:用于C++容器的打印库。
  4. DynaPDF:易于使用的PDF生成库。
  5. gcc-poison:帮助开发人员禁止应用程序中的不安全的C/C++函数的简单的头文件。
  6. googlemock:编写和使用C++模拟类的库。
  7. HTTP Parser:C的http请求/响应解析器。
  8. libcpuid:用于x86 CPU检测盒特征提取的小型C库。
  9. libevil:许可证管理器。
  10. libusb:允许移动访问USB设备的通用USB库。
  11. PCRE:正则表达式C库,灵感来自于Perl中正则表达式的功能。
  12. Remote Call Framework:C++的进程间通信框架。
  13. Scintilla:开源的代码编辑控件。
  14. Serial Communication Library:C++语言编写的跨平台,串口库。
  15. SDS:C的简单动态字符串库。
  16. SLDR:超轻的DNS解析器。
  17. SLRE:超轻的正则表达式库。
  18. Stage:移动机器人模拟器。
  19. VarTypes:C++/Qt4功能丰富,面向对象的管理变量的框架。
  20. ZBar:‘条形码扫描器’库,可以扫描照片,图片和视频流中的条形码,并返回结果。
  21. CppVerbalExpressions:易于使用的C++正则表达式。
  22. QtVerbalExpressions:基于C++ VerbalExpressions 库的Qt库。
  23. PHP-CPP:使用C++来构建PHP扩展的库。
  24. Better String:C的另一个字符串库,功能更丰富,但是没有缓冲溢出问题,还包含了一个C++包装器。

软件用于创建开发环境的软件

编译器与在线编译器

C/C++编译器列表

  1. Clang:由苹果公司开发的。
  2. GCC:GNU编译器集合。
  3. Intel C++ Compiler:由英特尔公司开发。
  4. LLVM:模块化和可重用编译器和工具链技术的集合。
  5. Microsoft Visual C++:MSVC,由微软公司开发。
  6. Open WatCom:Watcom、C、C++和Fortran交叉编译器和工具。
  7. TCC:轻量级的C语言编译器。
  8. codepad:在线编译器/解释器,一个简单的协作工具。
  9. CodeTwist:一个简单的在线编译器/解释器,你可以粘贴的C,C++或者Java代码,在线执行并查看结果。
  10. coliru:在线编译器/shell, 支持各种C++编译器。
  11. Compiler Explorer:交互式编译器,可以进行汇编输出。
  12. CompileOnline:Linux上在线编译和执行C++程序。
  13. Ideone:一个在线编译器和调试工具,允许你在线编译源代码并执行,支持60多种编程语言。
  14. C++ Shell:一个非常简单方便,不需要注册的C++在线编译器,可以显示编译信息,允许使用不同的C++标准,不同的优化选项,并支持stdio.

调试器与测试C/C++调试器列表

  1. Comparison of debuggers:来自维基百科的调试器列表。
  2. GDB:GNU调试器。
  3. Valgrind:内存调试,内存泄露检测,性能分析工具。
  4. Boost.Test:Boost测试库。
  5. Catch:一个很时尚的,C++原生的框架,只包含头文件,用于单元测试,测试驱动开发和行为驱动开发。
  6. CppUnit:由JUnit移植过来的C++测试框架。
  7. CTest:CMake测试驱动程序。
  8. googletest:谷歌C++测试框架。
  9. ig-debugheap:用于跟踪内存错误的多平台调试堆。
  10. libtap:用C语言编写测试。
  11. MemTrack:—用于C++跟踪内存分配。
  12. microprofile:跨平台的网络试图分析器。
  13. minUnit:使用C写的迷你单元测试框架,只使用了两个宏。
  14. Remotery:用于web视图的单一C文件分析器。
  15. UnitTest++:轻量级的C++单元测试框架。

集成开发环境(IDE)C/C++集成开发环境列表

  1. AppCode:构建与JetBrains’ IntelliJ IDEA 平台上的用于Objective-C,C,C++,Java和Java开发的集成开发环境。
  2. CLion:来自JetBrains的跨平台的C/C++的集成开发环境。
  3. Code::Blocks:免费C,C++和Fortran的集成开发环境。
  4. CodeLite:另一个跨平台的免费的C/C++集成开发环境。
  5. Dev-C++:可移植的C/C++/C++11集成开发环境。
  6. Eclipse CDT:基于Eclipse平台的功能齐全的C和C++集成开发环境。
  7. Geany:轻量级的快速,跨平台的集成开发环境。
  8. IBM VisualAge:来自IBM的家庭计算机集成开发环境。
  9. Irony-mode:由libclang驱动的用于Emacs的C/C++微模式。
  10. KDevelop:免费开源集成开发环境。
  11. Microsoft Visual Studio:来自微软的集成开发环境。
  12. NetBeans:主要用于Java开发的的集成开发环境,也支持其他语言,尤其是PHP,C/C++和HTML5。
  13. Qt Creator:跨平台的C++,Javascript和QML集成开发环境,也是Qt SDK的一部分。
  14. rtags:C/C++的客户端服务器索引,用于 跟基于clang的emacs的集成。
  15. Xcode:由苹果公司开发。
  16. YouCompleteMe:一个用于Vim的根据你敲的代码快速模糊搜索并进行代码补全的引擎。

构建系统

        构建系统是一种用于管理软件构建过程的自动化工具。对于同一软件系统的不同版本,构建系统可以自动帮助开发者执行许多繁重的编译、链接、包装等操作。构建系统可实现众多功能

  1. Bear:用于为clang工具生成编译数据库的工具。
  2. Biicode:基于文件的简单依赖管理器。
  3. CMake:跨平台的免费开源软件用于管理软件使用独立编译的方法进行构建的过程。
  4. CPM:基于CMake和Git的C++包管理器。
  5. FASTBuild:高性能,开源的构建系统,支持高度可扩展性的编译,缓冲和网络分布。
  6. Ninja:专注于速度的小型构建系统。
  7. Scons:使用Python scipt 配置的软件构建工具。
  8. tundra:高性能的代码构建系统,甚至对于非常大型的软件项目,也能提供最好的增量构建次数。
  9. tup:基于文件的构建系统,用于后台监控变化的文件。
  10. Hunter:C++包管理器,可以下载和构建各种C++软件库和工具。
  11. 一个用于C++依赖管理的开源包管理器,可用于解决构建依赖性问题和库版本控制问题。
  12.  Bakefile:C++构建系统,可生成多种构建系统的脚本,如makefile、Visual Studio项目文件和IDE项目文件等。
  13. Premake:一个用Lua编写的可扩展的C++构建工具,可用于生成各种构建系统的脚本。
  14.  Bazel:一个用于构建和测试多语言软件的快速、可扩展构建系统,支持多种语言和构建规则。
  15. Meson:一个用于构建跨平台软件的快速C++构建系统,采用声明式的语法和自动依赖追踪等功能。

静态代码分析提高质量,减少瑕疵的代码分析工具列表

  1. Cppcheck:静态C/C++代码分析工具。
  2. include-what-you-use:使用clang进行代码分析的工具,可以#include在C和C++文件中。
  3. OCLint:用于C,C++和Objective-C的静态源代码分析工具,用于提高质量,减少瑕疵。
  4. Clang Static Analyzer:查找C,C++和Objective-C程序bug的源代码分析工具。
  5.  iwyu:基于Clang编译器的头文件分析工具,可以查找和修复代码中不必要的头文件。
  6. Viva64:PVS-Studio公司开发的C/C++代码分析工具,可以识别和修复代码中的瑕疵、安全漏洞和性能瓶颈。
  7.  FlawFinder:查找C/C++代码中的可能安全漏洞和缺陷的符号分析工具,包括代码注入、缓冲区溢出、格式化字符串等。
  8. scan-build:基于Clang编译器的C/C++静态代码分析工具,可以检测和修复代码中的问题,如内存泄漏、线程问题等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732463.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java - JVM

文章目录 一、JVM1. JVM的作用2. JVM、JRE、JDK的关系3. JVM的组成4. JVM工作流程5. 运行时方法区Runtime Data Area 二、深入JVM内存模型(JMM) 一、JVM 1. JVM的作用 Java代码编译成java字节码后,运行在JVM中,只要针对不同的系统…

保姆级讲解 Stable Diffusion

目录 本文讲解思路介绍 一、引入 二、Diffusion Model 三、原文的摘要和简介 四、Stable Diffusion 4.1、组成模块 4.2、感知压缩 4.3、条件控制 五、图解 Stable Diffusion 5.1、潜在空间的扩散 5.2、条件控制 5.3、采样 5.4、Diffusion Model 与 Stable Diffusion …

OnlyFans如何微信支付?订阅Onlyfans虚拟卡?OnlyFans订阅推荐指南教程

OnlyFans 订阅教程,手把手教你使用虚拟信用卡订阅 大家好,大家都在关心OnlyFans如何订阅怎么订阅,能不能用微信或者支付宝来订阅,首先微信是不行的,本文教大家如何在 Onlyfans 订阅和支付(虚拟信用卡&#…

【Tauri】(4):使用Tauri1.5版本+candle框架运行大模型,前后的搭建运行成功,整合前端项目,在应用中显示。

1,视频地址 关于tauri 框架 2,搭建rust 环境 # 设置服务器国内代理: export RUSTUP_DIST_SERVER"https://rsproxy.cn" export RUSTUP_UPDATE_ROOT"https://rsproxy.cn/rustup"# 设置环境变量 export RUSTUP_HOME/data/…

R语言基础的代码语法解译笔记

1、双冒号,即:“::” 要使用某个包里的函数,通常做法是先加载(library)包,再调用函数。最新加载的包的namespace会成为最新的enviroment,某些情况下可能影响函数的结果。而package name::funct…

java ~ word模板填充字符后输出到指定目录

word文件格式&#xff1a; jar包&#xff1a; <dependency><groupId>com.deepoove</groupId><artifactId>poi-tl</artifactId><version>1.10.0</version></dependency>样例代码&#xff1a; // 封装参数集合Map<String, Ob…

报告,已成功揪出三害:英语、谷歌、ChatGPT

互联网风云变幻&#xff0c;最近网上的壮士们经过不懈努力&#xff0c;成功揪出作家莫言为一害&#xff0c;微博上的壮士们给出的理由是“如果莫言是个好人&#xff0c;会给他发诺贝尔文学奖&#xff1f;” 此风波的始作俑者来自某大V&#xff0c;他信誓旦旦要起诉莫言老师&…

Java实现从本地读取CSV文件数据

一、前言 最近项目中需要实现这样一个功能&#xff0c;就是从本地读取CSV文件&#xff0c;并以指定行作为标题行&#xff0c;指定行开始作为数据读取行&#xff0c;读取数据并返回给前端&#xff0c;下面具体说下是如何通过java实现。 二、如何实现&#xff1f; 1.引入相关mav…

【深度学习笔记】6_7 门控循环单元(GRU)

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 6.7 门控循环单元&#xff08;GRU&#xff09; 上一节介绍了循环神经网络中的梯度计算方法。我们发现&#xff0c;当时间步数较大或者…

【Objective -- C】—— 自引用计数

【Objective -- C】—— 自引用计数 一. 内存管理/自引用计数1.自引用计数2.内存管理的思考方式自己生成的对象&#xff0c;自己持有非自己生成的对象&#xff0c;自己也能持有不再需要自己持有的对象时释放无法释放非自己持有的对象 3.alloc/retain/release/dealloc实现4. aut…

全链路Python环境迁移

全链路Python环境迁移 在当前的Python环境中&#xff0c;安装一些库以后&#xff0c;如果换了一套Python环境&#xff0c;难道再来一次不停的pip install&#xff1f;当然不是。 第一步&#xff0c;使用pip freeze&#xff08;冻结&#xff09;备份当前Python库的环境 pip f…

智慧公厕系统的运作过程

智慧公厕是一种新型的未来城市公共厕所&#xff0c;通过物联网、互联网、大数据、云计算、自动化控制等技术&#xff0c;实现公共厕所使用、运营、管理、养护的全过程全方位信息化。 那么&#xff0c;智慧公厕是如何运作的&#xff1f;智慧公厕的运作过程包括什么技术&#xf…

【Pytorch、torchvision、CUDA 各个版本对应关系以及安装指令】

Pytorch、torchvision、CUDA 各个版本对应关系以及安装指令 1、名词解释 1.1 CUDA CUDA&#xff08;Compute Unified Device Architecture&#xff09;是由NVIDIA开发的用于并行计算的平台和编程模型。CUDA旨在利用NVIDIA GPU&#xff08;图形处理单元&#xff09;的强大计算…

使用R语言进行聚类分析

一、样本数据描述 城镇居民人均消费支出水平包括食品、衣着、居住、生活用品及服务、通信、文教娱乐、医疗保健和其他用品及服务支出这八项指标来描述。表中列出了2016年我国分地区的城镇居民的人均消费支出的原始数据&#xff0c;数据来源于2017年的《中国统计年鉴》&#xf…

Publii和GitHub:搭建个人网站的完美组合

在数字时代&#xff0c;拥有一个个人网站已经非常普遍了&#xff0c;但是&#xff0c;很多人因为技术难题而望而却步。现在&#xff0c;有了Publii&#xff0c;这一切都将变得简单。Publii是一个静态网站生成器&#xff0c;它允许你在本地计算机上创建和管理内容&#xff0c;然…

ARM中汇编语言的学习(加法、乘法、除法、左移、右移、按位与等多种命令操作实例以及ARM的 N、Z、C、V 标志位的解释)

汇编概述 汇编需要学习的大致框架如下&#xff1a; 汇编中的符号 1.指令&#xff1b;能够北嘁肷梢惶?2bit机器码&#xff0c;并且能够被cpui识别和执行 2.伪指令&#xff1a;本身不是指令&#xff0c;编译器可以将其替换成若干条指令 3.伪操作&#xff1a;不会生成指令…

如何修复advapi32.dll丢失无法启动程序的问题

如果你在运行Windows程序时遇到了“advapi32.dll丢失无法启动程序”的错误消息&#xff0c;那么这意味着你的计算机缺少这个DLL文件。在本文中&#xff0c;我们将提供一些解决方案&#xff0c;帮助你解决这个问题并恢复计算机的正常运行。 一.advapi32.dll丢失电脑的提示 关于…

软件项目试运行方案

一、 试运行目的 &#xff08;一&#xff09; 系统功能、性能与稳定性考核 &#xff08;二&#xff09; 系统在各种环境和工况条件下的工作稳定性和可靠性 &#xff08;三&#xff09; 检验系统实际应用效果和应用功能的完善 &#xff08;四&#xff09; 健全系统运行管理体制&…

宏碁掠夺者:4K144Hz显示器,让你爽翻天

大家好&#xff0c;我又来了。 买了PS5后&#xff0c;我发现这样的主机放在客厅里可玩性不太高&#xff08;我没机会玩&#xff09;。 毕竟家里还有今年要上小学的孩子。 每天回家打卡交作业都让我发疯。 客厅里放一台PS5无疑是每天对孩子最大的影响&#xff08;也划破了我的心…

vue 下载的插件从哪里上传?npm发布插件详细记录

文章参考&#xff1a; 参考文章一&#xff1a; 封装vue插件并发布到npm详细步骤_vue-cli 封装插件-CSDN博客 参考文章二&#xff1a; npm发布vue插件步骤、组件、package、adduser、publish、getElementsByClassName、important、export、default、target、dest_export default…