截止目前开源中国收录了 49334 款开源项目,囊括了最热门的各类开源项目,而软件的评分在一定程度上代表了软件的质量和热度,而 C 和 C++ 语言作为最基础的语言,在各类编程语言排行榜中高居不下。
因此本文整理了 C/C++ 语言中评分最高并且收藏量超过 200 的13 款项目,以供开发者选择和交流,排名如下:
评分: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
评分: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
评分:8.1,收藏:319
Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。
Apollo 是百度重点打造的 AI 开放平台之一,计划主要包含 4 个技术模块:定位/感知模块、车辆规划与运营(AI+大数据,精准控制车辆,适合不同路况)、软件运营框架(支持英特尔、英伟达等多种芯片)。
# start Human Machine Interface(HMI) bash scripts/hmi.sh
打开浏览器,跳转至 http://localhost:8887,单击 Dreamview 开始。
单击右上角的 Dreamview 按钮
加载 Dreamview UI
# in a different terminal inside docker rosbag play -l ./docs/demo_guide/demo.bag
Dreamview 将显示运行的车辆与轨迹
更多信息:开源自动驾驶平台 ApolloAuto
评分:8.1,收藏:278
ngx-fastdfs 是 nginx + lua +fastdfs 实现分布式图片实时动态压缩。
进入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的用户组配置一样
评分:8.0,收藏:422
Tars 是基于名字服务使用 Tars 协议的高性能 RPC 开发框架,同时配套一体化的服务治理平台,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。它是将腾讯内部使用的微服务架构 TAF(Total Application Framework)多年的实践成果总结而成的开源项目。
目前该框架在腾讯内部,有 100 多个业务(如手机浏览器、应用宝、手机管家、手机QQ、手机游戏等)、1.6 多万台服务器上运行使用。
技术架构:
更多信息:高性能 RPC 开发框架 Tars
评分:7.9,收藏:426
LiteIDE是一款开源、跨平台的轻量级Go语言集成开发环境(IDE)。
核心功能
* 系统环境管理
* MIME类型管理
* 可配置编译命令
* 支持文件搜索替换和恢复
* 快速打开文件、符号和命令
* 插件系统
高级代码编辑器
* 代码编辑支持 Go语言、Markdown 和 Golang Present
* 快速代码导航工具
* 语法高亮和配色方案
* 代码完成
* 代码折叠
* 显示保存修订
* 重读文件使用代码差异方式
更多信息:Go语言开发工具 LiteIDE
评分:7.9,收藏:460
tcpcopy是一种应用请求复制(基于tcp的packets)工具,其应用领域较广,目前已经应用于国内各大互联网公司。总体说来,tcpcopy主要有如下功能:
tcpcopy可以用于实时和离线回放领域,并且tcpcopy支持mysql协议的复制,开源这几年以来,功能上越来越完善。如果你对上线没有信心,如果你的单元测试不够充分,如果你对新系统不够有把握,如果你对未来的请求压力无法预测,tcpcopy可以帮助你解决上述难题。
更多信息:分布式TCP压力测试工具 tcpcopy
评分:7.9,收藏:453
Ekho(余音)是一个把文字转换成声音的软件。它目前支持粤语、普通话(国语)、诏安客语、藏语、雅言(中国古代通用语)和韩语(试验中),英文则通过Festival间接实现。支持Linux、Windows、Android.
更多信息:中文文本转语音引擎 Ekho
评分:7.8,收藏:210
Anbox 可让你在任何 GNU/Linux 操作系统上运行 Android 应用程序。具有以下特性:
更多信息:在 Linux 系统中运行 Android 应用 Anbox
评分:7.8,收藏:860
TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow的表现比第一代的DistBelief快了2倍。
TensorFlow 内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow的自动分 化(auto-differentiation)。
通过灵活的Python接口,要在TensorFlow中表达想法也会很容易。TensorFlow 对于实际的产品也是很有意义的。将思路从桌面GPU训练无缝搬迁到手机中运行。
更多信息:机器学习系统 TensorFlow
评分:7.8,收藏:449
Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。
Percona Server 只包含 MySQL 的服务器版,并没有提供相应对 MySQL 的 Connector 和 GUI 工具进行改进。Percona Server 使用了一些google-mysql-tools, Proven Scaling, Open Query 对 MySQL 进行改造。
评分:7.8,收藏:202
ProxySQL 是一个高性能,高可用性,的数据中间层项目。它具有先进的多核架构。 它从根本上构建,支持数十万个并发连接,复用到可能数百个后端服务器。 最大的 ProxySQL 部署跨越了几百个代理。
ProxySQL 可帮助您从 MySQL 集群中挤出最后一滴性能,而无需控制生成查询的应用程序。
更多信息:数据中间层项目 ProxySQL
评分:7.8,收藏:1889
Seafile 是一款安全、高性能的开源网盘(云存储)软件。Seafile 提供了主流网盘(云盘)产品所具有的功能,包括文件同步、文件共享等。在此基础上,Seafile 还提供了高级的安全保护功能以及群组协作功能。
由于 Seafile 是开源的,你可以把它部署在私有云的环境中,作为私有的企业网盘。Seafile 支持 Mac、Linux、Windows 三个桌面平台,支持 Android 和 iOS 两个移动平台。
Seafile 是由国内团队开发的国际型项目,目前已有50万左右的用户,以欧洲用户为多。自发布以来,Seafile 一直保持开放、国际化、高质量的宗旨,受到国内外大型机构的信赖。
目前主要的大型客户包括卡巴斯基、中国平安,以及欧美多家知名大学和科研机构。你可以把它想象成是面向团队的开源Dropbox。
更多信息:开源网盘云存储 Seafile
.........................................
原创不容易,看到的帅哥美女们点个赞呀!笔芯❤️❤️❤️
我的主页:@OSCHINA,为开发者服务!!
如果你也想了解 PHP 的开源项目?
如果你也想了解Go 语言的项目?
如果你也想了解 Python 的开源项目?
如果你也想了解Java的项目?
给大家分享一些优秀的开源项目:
CPlusPlusThings 是国人开源一个 C++ 学习项目。它系统地将 C++ 学习分为了【基础进阶】、【实战系列】、【C++2.0 新特性】、【设计模式】和【STL 源码剖析】、【并发编程】、【C++ 惯用法】、【学习课程】、【工具】、【拓展】。
作为一个全面系统的 C++ 学习项目,CPlusPlusThings 是优秀的,它合理地安排了 10 Days 的实战部分,在实战中了解语法和函数用法,唯一不足的是,在注释部分有些不尽人意,对部分新手程序员并不是很友好。【基础进阶】部分内容:
GitHub 地址→https://github.com/Light-City/CPlusPlusThings
C-Plus-Plus 是收录用 C++ 实现的各种算法的集合,并按照 MIT 许可协议进行授权。这些算法涵盖了计算机科学、数学和统计学、数据科学、机器学习、工程等各种主题。除外,你可能会发现针对同一目标的多个实现使用不同的算法策略和优化。
GitHub 地址→https://github.com/TheAlgorithms/C-Plus-Plus
modern-cpp-tutorial 是现代 C++ 教程,它的目的是提供关于现代 C++(2020 年前)的相关特性的全面介绍。除了介绍了代码之外,它还尽可能简单地介绍了其技术需求的历史背景,这对理解为什么会出现这些特性提供了很大的帮助。
GitHub 地址→https://github.com/changkun/modern-cpp-tutorial
CppTemplateTutorial 为中文的 C++ Template 的教学指南。与知名书籍 C++ Templates 不同,该系列教程将 C++ Templates 作为一门图灵完备的语言来讲授,以求帮助读者对 Meta-Programming 融会贯通。本项目写作初衷,就是通过 “编程语言” 的视角,介绍一个简单、清晰的 “模板语言”。我会尽可能地将模板的诸多要素连串起来,用一些简单的例子帮助读者学习这门 “语言”,让读者在编写、阅读模板代码的时候,能像 if(exp) { dosomething(); }
一样的信手拈来,让 “模板元编程” 技术成为读者牢固掌握、可举一反三的有用技能。
适合熟悉 C++ 的基本语法、使用过 STL、熟悉一些常用的算法,以及递归等程序设计方法的 C++ 学习者阅读。虽然项目章节文章写的深入浅出,不过唯一的遗憾是尚未完成所有章节内容。进度如下:
GitHub 地址→https://github.com/wuye9036/CppTemplateTutorial
当你学习完 C++ 的“书本”知识后,是不是有些手痒了呢?MyTinySTL 这个注释详细、实践夯实基础的项目便是你 C++ 学习之旅的下一站。作为新手练习用途,MyTinySTL 的作者 Alinshans 用 C++11 重新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合 C++ 新手来实践一番。
GitHub 地址→https://github.com/Alinshans/MyTinySTL
Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习。
GitHub 地址→https://github.com/taylorconor/tinytetris
微软开源的 Windows 系统预装的计算器工具。该工具提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。快来看看微软工程师编写的代码吧!学习大厂的编码规范、项目结构之类的,提高阅读源码的能力。英文的项目且没有讲解部分,需要通过阅读源码学习,难度较高。
GitHub 地址→https://github.com/microsoft/calculator
更多有趣,入门级的开源项目,可关注 HelloGitHub 获取
我们每月28号会准时发布 HelloGitHub 月刊,感兴趣可以关注一下哦
附最新一期月刊:
HelloGitHub 想让更多人爱上编程、开源,所以一直在尝试、摸索如何可以帮助到更多的人。目前HelloGitHub 交流群已全面开放,添加:HelloGitHub001 为好友入群,可同前端、Java、Go 等各界大佬谈笑风生、切磋技术~
HelloGitHub : 分享GitHub上有趣,入门级的开源项目。