够你学习的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++语言特性。

相关推荐
kejijianwen2 小时前
JdbcTemplate常用方法一览AG网页参数绑定与数据寻址实操
服务器·数据库·oracle
编程零零七2 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
高兴就好(石5 小时前
DB-GPT部署和试用
数据库·gpt
这孩子叫逆5 小时前
6. 什么是MySQL的事务?如何在Java中使用Connection接口管理事务?
数据库·mysql
Karoku0665 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
迷迭所归处6 小时前
C++ —— 关于vector
开发语言·c++·算法
码农郁郁久居人下6 小时前
Redis的配置与优化
数据库·redis·缓存
CV工程师小林6 小时前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
white__ice7 小时前
2024.9.19
c++
天玑y7 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯