够你学习的C++开源库

Google Chrome源码
项目地址:http://src.chromium.org/svn
源码Web浏览地址:http://src.chromium.org/viewvc/
Google推出的这款具有创新意义的浏览器,它的速度比其它浏览器快太多了,你可以去探索这其中的奥秘,它到底是怎么实现的?采用什么技术能达到这种效果?比如浏览器中每一个标签页都是一个进程,这又是如何实现的?了解这款开源源码,你能解密出很多高效的算法。
如果你想要学习这款浏览器,你需要将1G的源码下载下来,在自己的磁盘中准备大约10G的空间,在配置一款你喜爱的编译器,你就可以对它进行编译了。


30dayMakeCppServer
项目地址:https://github.com/nvpro-samples
Nvidia的Demo中几乎包括了所有的C++特征,如果你想学习现代图形学,强烈推荐你使用。

modern-cpp-tutorial
项目地址:https://github.com/changkun/modern-cpp-tutorial
这主要是一个C++教程,讲解现代C++特性,每一章节都有相关代码示例,如果你想学习C++,强烈推荐你学习这款开源代码。

ModernCppStarter
项目地址:https://github.com/TheLartians/ModernCppStarter

构建现代C++模版。创建一个新的C++项目通常需要大量的准备工作和冗余代码,对于具有测试、可执行文件和持续集成的现代C++项目很重要。本模板是基于以往众多项目的经验总结而来的,旨在帮助减少创建现代C++项目所需的工作量。
EASTL
项目地址:https://github.com/electronicarts/EASTL
EASTL代表电子艺术标准模板库。它是一个C++模板库,包含容器、算法和迭代器,适用于多个平台上的运行时和工具开发。这是一个相当全面且健壮的库实现,特别注重高性能。是属于EA公司开源的一款STL。

entt
项目地址:https://github.com/skypjack/entt
EnTT是一个只有头文件、小而易于使用的游戏编程库,更多是使用现代C++编写的。
其中,Mojang在《我的世界》中使用了它,Esri在ArcGIS Runtime SDK中使用了它,还有令人惊叹的Ragdoll。
如果你的项目没有它,请打开issue,提交PR或在您的主题中添加#entt标签!👍


sol2
项目地址:https://github.com/ThePhD/sol2
sol2是一个绑定到Lua的C++库。它目前支持所有Lua 5.1+版本(包括LuaJIT 2.0+和MoonJIT)。Sol2的目标是易于使用和易于添加到项目中。为了方便与项目集成,该库只有头文件,并且可以使用单个头文件进行拖放启动。

date
项目地址:https://github.com/HowardHinnant/date
date是由几个独立的c++ 11/ c++ 14/ c++ 17库组成。

json
项目地址:https://github.com/nlohmann/json
这是一款使用了所有现代C++构建的开源JSON库,整个代码由一个json.hpp组成,使用普通的C++11编写;没有库、没有子项目、没有依赖关系、没有复杂的构建系统。
代码经过严格的单元测试,覆盖所有代码,包括所有异常行为,该库还遵循核心基础设施计划(CII)。

FileZilla
项目地址:https://filezilla-project.org
FileZilla用C++11进行了重构,由德国的一位程序员开发,源码质量非常好,你可以一边调试一边学习,相信你的C++能力会突飞猛进。
贴一部分源代码吧,有需要的请自行去下载源码。

uWebSockets
项目地址:https://github.com/uNetworking/uWebSockets
这是一款开源的WebSocket库,新版大量采用了C++17的语法。
uWebSockets经过精心的优化速度和内存占用,速度已经足够快,可以代替大多数服务器更快的进行加密TLS 1.3消息传递,甚至比未加密的明文消息传递更快。

TeamTalk
项目地址::https://github.com/balloonwj/TeamTalk/tree/master/win-client
TeamTalk是一款开源的即使通信工具。

workflow
项目地址:https://github.com/sogou/workflow
由搜狗开源的一款C++服务引擎,支撑搜狗几乎所有的C++服务,包括输入法、广告、搜索服务等。

brpc
项目地址:https://github.com/apache/brpc
由百度开源的RPC框架,常用于存储、搜索、广告、机器学习等。

async_simple
项目地址:https://github.com/alibaba/async_simple
一款轻量级C++异步框架,由阿里巴巴开源,该项目基于C++20无栈协程、有栈协程、Future/Promise等异步组建构成,应用在阿里巴巴的时序数据库、图计算引擎、搜索引擎等。

folly
项目地址:https://github.com/facebook/folly
Folly(在Facebook开源库之后松散地缩写)是一个C++ 17组件库,设计时考虑到实用性和效率。Folly包含了Facebook广泛使用的各种核心库组件,它通常依赖于Facebook的其他开源C++项目,这些项目可以共享代码的地方。
这个开源库代码规范,测试用例丰富,源码中有很多注释,建议你可以多学学,同样是一个简单的功能,看看别人为什么能够写得这么好。

rocksdb
项目地址:https://github.com/facebook/rocksdb
RocksDB是由Facebook数据库工程团队开发和维护的。它基于Sanjay Ghemawat (sanjay@google.com)和Jeff Dean (jeff@google.com)在LevelDB上的早期工作。
这段代码是一个库,它构成了快速键值服务器的核心构建块,特别适合在闪存驱动器上存储数据。它具有日志结构合并数据库(LSM)设计,可以灵活地在写入放大因子(WAF),读取放大因子(RAF)和空间放大因子(SAF)之间进行权衡。它具有多线程压缩功能,使其特别适合在单个数据库中存储多个tb的数据。

ydb
项目地址:https://github.com/ydb-platform/ydb
YDB是一个开源的分布式SQL数据库,由俄罗斯Yandex开源,它将高可用性和可伸缩性与严格的一致性和ACID事务相结合。
支持多种编程语言SDK,如Go、JavaScript、Python、Java等。

vcpkg
项目地址:https://github.com/microsoft/vcpkg
是一款C/C++包管理器,由微软开源。

calculator
项目地址:https://github.com/microsoft/calculator
由微软开源,是Windows系统上自带的计算器工具,相信大家都见过,它提供标准、科学、计算器功能。

modern-cpp-features
项目地址:https://github.com/AnthonyCalandra/modern-cpp-features
主要介绍现代C++的语言库和特性,如C++11/14/17/20,可以让你快速了解C++语言特性。


 

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值