百科问答小站 logo
百科问答小站 font logo



有哪些值得学习的国内 c++ 开源项目? 第1页

  

user avatar   osc-kai-yuan-she-qu 网友的相关建议: 
      

截止目前开源中国收录了 49334 款开源项目,囊括了最热门的各类开源项目,而软件的评分在一定程度上代表了软件的质量和热度,而 C 和 C++ 语言作为最基础的语言,在各类编程语言排行榜中高居不下。

因此本文整理了 C/C++ 语言中评分最高并且收藏量超过 200 的13 款项目,以供开发者选择和交流,排名如下:

1、高性能网络通信框架 HP-Socket

评分:9.8,收藏:2239

HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程语言接口。

HP-Socket 对通信层实现完全封装,应用程序不必关注通信层的任何细节;HP-Socket 提供基于事件通知模型的 API 接口,能非常简单高效地整合到新旧应用程序中。

为了让使用者能方便快速地学习和使用 HP-Socket ,迅速掌握框架的设计思想和使用方法,特此精心制作了大量 Demo 示例(如:PUSH 模型示例、PULL 模型示例、PACK 模型示例、性能测试示例以及其它编程语言示例)。

更多信息高性能网络通信框架 HP-Socket

2、基于 C++/Python 的开源量化交易研究框架 Hikyuu

评分:8.3,收藏:376

Hikyuu Quant Framework是一款基于C++/Python的开源量化交易研究框架,用于策略分析及回测。其核心思想基于当前成熟的系统化交易方法,将整个系统化交易抽象为由市场环境判断策略、系统有效条件、信号指示器、止损/止盈策略、资金管理策略、盈利目标策略、移滑价差算法七大组件

你可以分别构建这些组件的策略资产库,在实际研究中对它们自由组合来观察系统的有效性、稳定性以及单一种类策略的效果。

例如::

       #创建模拟交易账户进行回测,初始资金30万 my_tm = crtTM(initCash = 300000)  #创建信号指示器(以5日EMA为快线,5日EMA自身的10日EMA最为慢线,快线向上穿越慢线时买入,反之卖出) my_sg = SG_Flex(OP(EMA(n=5)), slow_n=10)  #固定每次买入1000股 my_mm = MM_FixedCount(1000)  #创建交易系统并运行 sys = SYS_Simple(tm = my_tm, sg = my_sg, mm = my_mm) sys.run(sm['sz000001'], Query(-150))     

Hikyuu 优势:

  • 组合灵活,分类构建策略资产库
  • 性能保障,打造自己的专属应用
  • 多范式支持,探索更便捷、自由
  • 安全、自由、隐私,搭建自己的专属云量化平台
  • 数据存储方式可扩展

更多信息:基于 C++/Python 的开源量化交易研究框架 Hikyuu

3、开源自动驾驶平台 ApolloAuto

评分:8.1,收藏:319

Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。

Apollo 是百度重点打造的 AI 开放平台之一,计划主要包含 4 个技术模块:定位/感知模块、车辆规划与运营(AI+大数据,精准控制车辆,适合不同路况)、软件运营框架(支持英特尔、英伟达等多种芯片)。

Start Apollo

       # start Human Machine Interface(HMI) bash scripts/hmi.sh     

Access HMI

打开浏览器,跳转至 localhost:8887,单击 Dreamview 开始。

单击右上角的 Dreamview 按钮

加载 Dreamview UI

Replay demo rosbag

       # in a different terminal inside docker rosbag play -l ./docs/demo_guide/demo.bag     

Dreamview 将显示运行的车辆与轨迹

更多信息:开源自动驾驶平台 ApolloAuto

4、分布式图片实时动态压缩 ngx-fastdfs

评分:8.1,收藏:278

ngx-fastdfs 是 nginx + lua +fastdfs 实现分布式图片实时动态压缩。

install

       进入docker目录 docker build -t  fastdfs:dev .     

使用

       docker -idt -p 80:80 fastdfs:dev /bin/bash 进入容器执行 /etc/rc.local     

测试

       进入容器执行test目录下的./test.sh或者直接执行下面脚本 fdfs_test /etc/fdfs/client.conf upload /home/steven/01.jpg ... group_name=group1, ip_addr=192.168.1.181, port=23000 storage_upload_by_filename group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg ... example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580.jpg storage_upload_slave_by_filename group_name=group1, remote_filename=M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg ... example file url: http://192.168.1.181/group1/M00/00/00/wKgdhFTV0ZmAP3AZAPk-Io7D4w8580_big.jpg     

使用效果

自动压缩

           自动压缩采用减少图片质量来达到减小图片体积的效果     使用方法是把nginx里的nginxauto.conf替换原有的或者自己按着该文件修改     把lua里的thumbnailauto.lua文件替换原有的或者自己按着该文件修改     注意:fastdfs的storage的配置/etc/fdfs/storage.conf中run_by_group和run_by_user,最好跟nginx的用户组配置一样     

更多信息:分布式图片实时动态压缩 ngx-fastdfs

5、高性能 RPC 开发框架 Tars

评分:8.0,收藏:422

Tars 是基于名字服务使用 Tars 协议的高性能 RPC 开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。它是将腾讯内部使用的微服务架构 TAF(Total Application Framework)多年的实践成果总结而成的开源项目。

目前该框架在腾讯内部,有 100 多个业务(如手机浏览器、应用宝、手机管家、手机QQ、手机游戏等)、1.6 多万台服务器上运行使用。


技术架构:

更多信息:高性能 RPC 开发框架 Tars

6、Go语言开发工具 LiteIDE

评分:7.9,收藏:426

LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。

主要特点

核心功能

* 系统环境管理
* MIME类型管理
* 可配置编译命令
* 支持文件搜索替换和恢复
* 快速打开文件、符号和命令
* 插件系统

高级代码编辑器
* 代码编辑支持 Go语言、Markdown 和 Golang Present
* 快速代码导航工具
* 语法高亮和配色方案
* 代码完成
* 代码折叠
* 显示保存修订
* 重读文件使用代码差异方式

更多信息:Go语言开发工具 LiteIDE

7、分布式TCP压力测试工具 tcpcopy

评分:7.9,收藏:460

tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,目前已经应用于国内各大互联网公司。总体说来,tcpcopy主要有如下功能:

  • 分布式压力测试工具,利用在线数据,可以测试系统能够承受的压力大小(远比ab压力测试工具真实地多),也可以提前发现一些bug
  • 普通上线测试,可以发现新系统是否稳定,提前发现上线过程中会出现的诸多问题,让开发者有信心上线
  • 对比试验,同样请求,针对不同或不同版本程序,可以做性能对比等试验
  • 利用多种手段,构造无限在线压力,满足中小网站压力测试要求
  • 实战演习(架构师必备)

tcpcopy可以用于实时和离线回放领域,并且tcpcopy支持mysql协议的复制,开源这几年以来,功能上越来越完善。如果你对上线没有信心,如果你的单元测试不够充分,如果你对新系统不够有把握,如果你对未来的请求压力无法预测,tcpcopy可以帮助你解决上述难题。

更多信息:分布式TCP压力测试工具 tcpcopy

8、中文文本转语音引擎 Ekho

评分:7.9,收藏:453

Ekho(余音)是一个把文字转换成声音的软件。它目前支持粤语、普通话(国语)、诏安客语、藏语、雅言(中国古代通用语)和韩语(试验中),英文则通过Festival间接实现。支持Linux、Windows、Android.

更多信息:中文文本转语音引擎 Ekho

9、在 Linux 系统中运行 Android 应用 Anbox

评分:7.8,收藏:210

Anbox 可让你在任何 GNU/Linux 操作系统上运行 Android 应用程序。具有以下特性:

  • 没有限制:由于 Anbox 运行着整个 Android 系统,所以理论上任何应用都可以在其中运行
  • 安全:Anbox 将 Android APP 放进一个密封的盒子中,无需直接访问硬件或数据
  • 性能:无需虚拟化硬件而运行 Android,可以无缝桥接硬件加速功能
  • 集成:与主机操作系统紧密集成,以提供丰富的功能集

更多信息:在 Linux 系统中运行 Android 应用 Anbox

10、机器学习系统 TensorFlow

评分:7.8,收藏:860

TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow的表现比第一代的DistBelief快了2倍。

TensorFlow 内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow的自动分 化(auto-differentiation)。

通过灵活的Python接口,要在TensorFlow中表达想法也会很容易。TensorFlow 对于实际的产品也是很有意义的。将思路从桌面GPU训练无缝搬迁到手机中运行。

更多信息:机器学习系统 TensorFlow

11、MySQL衍生版 Percona Server

评分:7.8,收藏:449

Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。

Percona Server 只包含 MySQL 的服务器版,并没有提供相应对 MySQL 的 Connector 和 GUI 工具进行改进。Percona Server 使用了一些google-mysql-tools, Proven Scaling, Open Query 对 MySQL 进行改造。

更多信息:MySQL衍生版 Percona Server

12、数据中间层项目 ProxySQL

评分:7.8,收藏:202

ProxySQL 是一个高性能,高可用性,的数据中间层项目。它具有先进的多核架构。 它从根本上构建,支持数十万个并发连接,复用到可能数百个后端服务器。 最大的 ProxySQL 部署跨越了几百个代理。

高效的工作负载管理

ProxySQL 可帮助您从 MySQL 集群中挤出最后一滴性能,而无需控制生成查询的应用程序。

支持

  • 查询缓存
  • 查询路由
  • 故障转移

更多信息:数据中间层项目 ProxySQL

13、开源网盘云存储 Seafile

评分:7.8,收藏:1889

Seafile 是一款安全、高性能的开源网盘(云存储)软件。Seafile 提供了主流网盘(云盘)产品所具有的功能,包括文件同步、文件共享等。在此基础上,Seafile 还提供了高级的安全保护功能以及群组协作功能。

由于 Seafile 是开源的,你可以把它部署在私有云的环境中,作为私有的企业网盘。Seafile 支持 Mac、Linux、Windows 三个桌面平台,支持 Android 和 iOS 两个移动平台。

Seafile 是由国内团队开发的国际型项目,目前已有50万左右的用户,以欧洲用户为多。自发布以来,Seafile 一直保持开放、国际化、高质量的宗旨,受到国内外大型机构的信赖。

目前主要的大型客户包括卡巴斯基、中国平安,以及欧美多家知名大学和科研机构。你可以把它想象成是面向团队的开源Dropbox。

更多信息:开源网盘云存储 Seafile

.........................................

原创不容易,看到的帅哥美女们点个赞呀!笔芯❤️❤️❤️

我的主页:@OSCHINA为开发者服务!!

如果你也想了解 PHP 的开源项目?

github上有哪些值得学习的优秀的php开源项目?

如果你也想了解Go 语言的项目?

有哪些值得学习的 Go 语言开源项目?

如果你也想了解 Python 的开源项目?

值得看的Python的开源项目有哪些?

如果你也想了解Java的项目?

Github 上有没有优秀的Java 项目推荐?


user avatar   xueweihan 网友的相关建议: 
      

给大家分享一些优秀的开源项目:

一、基础

1.1 一个项目入门 C++ 足以:CPlusPlusThings

CPlusPlusThings 是国人开源一个 C++ 学习项目。它系统地将 C++ 学习分为了【基础进阶】、【实战系列】、【C++2.0 新特性】、【设计模式】和【STL 源码剖析】、【并发编程】、【C++ 惯用法】、【学习课程】、【工具】、【拓展】。

作为一个全面系统的 C++ 学习项目,CPlusPlusThings 是优秀的,它合理地安排了 10 Days 的实战部分,在实战中了解语法和函数用法,唯一不足的是,在注释部分有些不尽人意,对部分新手程序员并不是很友好。【基础进阶】部分内容:

  • const 那些事
  • static 那些事
  • decltype 那些事
  • 引用与指针那些事
  • 宏那些事
GitHub 地址→github.com/Light-City/C

1.2 基础部分之算法:C-Plus-Plus

C-Plus-Plus 是收录用 C++ 实现的各种算法的集合,并按照 MIT 许可协议进行授权。这些算法涵盖了计算机科学、数学和统计学、数据科学、机器学习、工程等各种主题。除外,你可能会发现针对同一目标的多个实现使用不同的算法策略和优化。

GitHub 地址→github.com/TheAlgorithm

二、进阶

2.1 现代 C++:modern-cpp-tutorial

modern-cpp-tutorial 是现代 C++ 教程,它的目的是提供关于现代 C++(2020 年前)的相关特性的全面介绍。除了介绍了代码之外,它还尽可能简单地介绍了其技术需求的历史背景,这对理解为什么会出现这些特性提供了很大的帮助。

GitHub 地址→github.com/changkun/mod

2.2 进阶指南:CppTemplateTutorial

CppTemplateTutorial 为中文的 C++ Template 的教学指南。与知名书籍 C++ Templates 不同,该系列教程将 C++ Templates 作为一门图灵完备的语言来讲授,以求帮助读者对 Meta-Programming 融会贯通。本项目写作初衷,就是通过 “编程语言” 的视角,介绍一个简单、清晰的 “模板语言”。我会尽可能地将模板的诸多要素连串起来,用一些简单的例子帮助读者学习这门 “语言”,让读者在编写、阅读模板代码的时候,能像 if(exp) { dosomething(); } 一样的信手拈来,让 “模板元编程” 技术成为读者牢固掌握、可举一反三的有用技能。

适合熟悉 C++ 的基本语法、使用过 STL、熟悉一些常用的算法,以及递归等程序设计方法的 C++ 学习者阅读。虽然项目章节文章写的深入浅出,不过唯一的遗憾是尚未完成所有章节内容。进度如下:

  • 0.前言
  • 1.Template 的基本语法
  • 2.模板元编程基础
  • 3.深入理解特化与偏特化
  • 4.元编程下的数据结构与算法 (尚未开始)
  • 5.模板的进阶技巧(尚未开始)
  • 6.模板的威力:从 foreach, transform 到 Linq(尚未开始)
  • 7.结语:讨论有益,争端无用(尚未开始)
GitHub 地址→github.com/wuye9036/Cpp

三、动手实战

3.1 来实践一下:MyTinySTL

当你学习完 C++ 的“书本”知识后,是不是有些手痒了呢?MyTinySTL 这个注释详细、实践夯实基础的项目便是你 C++ 学习之旅的下一站。作为新手练习用途,MyTinySTL 的作者 Alinshans 用 C++11 重新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合 C++ 新手来实践一番。

GitHub 地址→github.com/Alinshans/My

3.2 重温同年俄罗斯方块:Tinytetris

Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习。

GitHub 地址→github.com/taylorconor/

3.3 学习下大佬们的代码:calculator

微软开源的 Windows 系统预装的计算器工具。该工具提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。快来看看微软工程师编写的代码吧!学习大厂的编码规范、项目结构之类的,提高阅读源码的能力。英文的项目且没有讲解部分,需要通过阅读源码学习,难度较高。

GitHub 地址→github.com/microsoft/ca

最后

更多有趣,入门级的开源项目,可关注 HelloGitHub 获取

我们每月28号会准时发布 HelloGitHub 月刊,感兴趣可以关注一下哦

附最新一期月刊:

HelloGitHub 想让更多人爱上编程、开源,所以一直在尝试、摸索如何可以帮助到更多的人。目前HelloGitHub 交流群已全面开放,添加:HelloGitHub001 为好友入群,可同前端、Java、Go 等各界大佬谈笑风生、切磋技术~


HelloGitHub : 分享GitHub上有趣,入门级的开源项目。




  

相关话题

  如何理解编程语言中「流」(stream)的概念? 
  Windows 为什么不开源? 
  VS 2015 的跨平台特性对 Qt 会带来多大的冲击呢? 
  实际工作中的 C++ 项目都是没有内存泄漏的么? 
  如何学习递归呢? 
  如何看待被面试官鄙视自己开源的代码? 
  PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点? 
  在C++中,为什么部分程序员喜欢在循环中写‘++i’而不是‘i++’? 
  Mac系统下有什么适合图形学的C++IDE?Clion还是VS? 
  C++的new操作符,底层使用的是malloc吗,在析构时,是如何确定自己需要释放内存的大小的? 

前一个讨论
单倍体生物能进行有性生殖么?
下一个讨论
钠离子电池和钾离子电池哪个更有可能取代锂离子电池?





© 2024-09-27 - tinynew.org. All Rights Reserved.
© 2024-09-27 - tinynew.org. 保留所有权利