当前位置:   article > 正文

记录一些优秀的开源CPP项目

记录一些优秀的开源CPP项目

基础知识

1.cppThings

https://github.com/Light-City/CPlusPlusThings

2.cpp多线程指南

https://github.com/forhappy/Cplusplus-Concurrency-In-Practice

3.算法导论

https://github.com/huaxz1986/cplusplus-_Implementation_Of_Introduction_to_Algorithms

字符串处理

1.JSON for Modern C++

可以将CPP字符串解析为容器,也可以吧容器解析为字符串

2.nolman json

更加全面的json处理器,代码就没那么容易看懂。

3.fmt

GitHub - fmtlib/fmt: A modern formatting library

字符串处理,格式化,系列化,等等。

数据库

1.SQLite Modern Cpp Wrapper

https://github.com/SqliteModernCpp/sqlite_modern_cpp

这是SQLite的一个现代C++包装器,代码清晰,有助于理解如何在C++中操作数据库。

日志

1.spdlog

一个超快的C++日志库,支持格式化和多线程。代码结构清晰,易于跟踪和学习。

2.EasyLogger

GitHub - armink/EasyLogger: An ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库

只占用极少资源,功能简单。适合上手

3.SPDLOG

https://github.com/gabime/spdlog

SPDLOG是一个快速的C++日志库,代码量在5000行左右。这个库的代码非常简洁,易于阅读和使用。它支持多线程、异步日志和多种输出格式。这个项目在Github上有超过16k个star。

服务端

1.C++ REST SDK

https://github.com/microsoft/cpprestsdk

这个完全可以学习一下,C++ REST SDK是一个轻量级的C++11库,它可以用于创建异步RESTful Web服务。这个库的代码风格清晰简洁,代码量在5000行左右,非常易于阅读和理解。这个项目在Github上有超过18k个star,证明了它的受欢迎程度。

2.Poco Libraries

https://github.com/pocoproject/poco

网络编程框架,代码庞大

3.workflow

GitHub - sogou/workflow: C++ Parallel Computing and Asynchronous Networking Framework

搜狗正在使用的后端框架,支持几乎所有搜狗后端在线服务,包括搜索服务、云输入发、广告接口等,每天超百亿请求。后端功能几乎都具备了

4. TinyWebServer

GitHub - qinguoyi/TinyWebServer: :fire: Linux下C++轻量级WebServer服务器

简单的cpp服务器,作者还写了讲解相关代码和原理的文章,对于初学者掌握网络编程相关知识很有帮助。

异步

1.async_simple

GitHub - alibaba/async_simple: Simple, light-weight and easy-to-use asynchronous components

异步框架,可以视为一个组件使用,在数据库、搜索引擎、计算引擎方面都可以使用

多线程

1.ctpl

GitHub - vit-vit/CTPL: Modern and efficient C++ Thread Pool Library

ctpl是一个轻量级的C++线程池库,只有不到300行的代码量。这个库提供了一个非常简单的API,可以帮助开发者轻松地创建和管理线程池。这个项目在Github上有超过3k个star。可以借鉴一下别人怎么写的,丰富一下自己的线程池。

LUA

1.Sol2

GitHub - ThePhD/sol2: Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance - is here, and it's great! Documentation:

没啥说的,一定要学。未来估计用得上。

对象序列化

1.cereal

GitHub - USCiLab/cereal: A C++11 library for serialization

cereal是一个用于C++的快速、易于使用的序列化库。这个库提供了一个简单、清晰的API,可以帮助开发者将C++对象序列化为二进制数据或JSON格式。这个项目的代码量在5000行左右,非常适合阅读和学习。这个项目在Github上有超过3k个star。

2.tinyformat

https://github.com/c42f/tinyformat

tinyformat是一个非常小巧的格式化字符串库,只有不到1000行的代码量。这个库提供了一个非常简单的API,可以帮助开发者方便地格式化输出。这个项目在Github上有超过2k个star。

工具类

1.folly

GitHub - facebook/folly: An open-source C++ library developed and used at Facebook.

Folly是Facebook开发的一个C++库,包含了许多实用的工具和数据结构。这个库的代码量在5000行以上,但是它的代码风格非常清晰,非常易于阅读和理解。这个项目在Github上有超过14k个star。

2.lz4

GitHub - lz4/lz4: Extremely Fast Compression algorithm

压缩工具,可以仔细看看,估计用的上

计算及图形和深度

1.OpenCV

https://github.com/opencv/opencv

2.Eigen

libeigen / eigen · GitLab

矩阵运算器。求逆,特征值,矩阵分解,等等

3.PaddlePaddle

GitHub - PaddlePaddle/Paddle: PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)

深度学习框架,有各种模型

全能

1.Awesome C++

GitHub - fffaraz/awesome-cpp: A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.

2.AbSeil

https://github.com/abseil/abseil-cpp

谷歌开源的全能cpp库。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/317622
推荐阅读
相关标签
  

闽ICP备14008679号