Github上优秀开源C++项目推荐第二弹

Github上优秀开源C++项目推荐第二弹

Sogou C++ Workflow

https://github.com/sogou/workflow

搜狗公司C++服务器引擎,支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数C++后端开发需求。

  • 快速搭建http服务器:
<code>#include 
#include "workflow/WFHttpServer.h"

int main()
{
    WFHttpServer server([](WFHttpTask *task) {
        task->get_resp()->append_output_body("Hello World!");
    });

    if (server.start(8888) == 0) {  // start server on port 8888
        getchar(); // press "Enter" to end.
        server.stop();
    }

    return 0;
}/<code>
  • 作为万能异步客户端。目前支持http,redis,mysql和kafka协议。
  • 实现自定义协议client/server,构建自己的RPC系统。srpc就是以它为基础,作为独立项目开源。支持srpc,brpc和thrift等协议。
  • 构建异步任务流,支持常用的串并联,也支持更加复杂的DAG结构。
  • 作为并行编程工具使用。除了网络任务,我们也包含计算任务的调度。所有类型的任务都可以放入同一个流中。
  • 在Linux系统下作为文件异步IO工具使用,性能超过任何标准调用。磁盘IO也是一种任务。
  • 实现任何计算与通讯关系非常复杂的高性能高并发的后端服务。
  • 构建服务网格(service mesh)系统。项目内置服务治理与负载均衡等功能。

编译和运行环境

  • 项目支持Linux,macOS,Windows等操作系统。Windows版以windows分支发布,使用iocp实现异步网络。用户接口与Linux版一致。
  • 支持所有CPU平台,包括32或64位x86处理器,大端或小端arm处理器。
  • 需要依赖于OpenSSL,推荐OpenSSL 1.1及以上版本。不喜欢SSL的用户可以使用nossl分支或study分支(无upstream),代码更简洁。但仍需链接crypto。
  • 项目使用了C++11标准,需要用支持C++11的编译器编译。但不依赖boost或asio。
  • 项目无其它依赖。如需使用kafka协议,需自行安装lz4,zstd和snappy几个压缩库。

RedisDesktopManager

https://github.com/uglide/RedisDesktopManager

基于Qt5的开源跨平台Redis桌面管理器。

Github上优秀开源C++项目推荐第二弹

2048.cpp

https://github.com/plibither8/2048.cpp

一个C++ 写的终端 2048 游戏。

Github上优秀开源C++项目推荐第二弹

MyTinySTL

https://github.com/Alinshans/MyTinySTL

基于 C++11 的 tinySTL,代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合新手学习与参考。现在已经发布了 2.x.x 版本,实现了大部分 STL 中的容器与函数 。项目已经处于长期维护的阶段,即基本不会增加新的内容,只修复发现的 bug。

示例代码如下:

<code>// 弹出尾部元素
template 
void deque::pop_back()
{
  MYSTL_DEBUG(!empty());
  if (end_.cur != end_.first)
  {
    --end_.cur;
    data_allocator::destroy(end_.cur);
  }
  else
  {
    --end_;
    data_allocator::destroy(end_.cur);
    destroy_buffer(end_.node + 1, end_.node + 1);
  }
}/<code>

TrafficMonitor

https://github.com/zhongyang219/TrafficMonitor

Traffic Monitor是一款用于Windows平台的网速监控悬浮窗软件,可以显示当前网速、CPU及内存利用率,支持嵌入到任务栏显示,支持更换皮肤、历史流量统计等功能。

  • 显示当前实现网络传输速率、CPU和内存占用率
  • 如果电脑有多个网卡,支持自动和手动选择网络连接
  • 查看网络详细信息
  • 支持嵌入到任务栏显示
  • 支持更换皮肤和自定义皮肤
  • 历史流量统计
Github上优秀开源C++项目推荐第二弹

OpenCC

https://github.com/BYVoid/OpenCC

中文简繁转换开源项目,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港、日本新字体)。不提供普通话与粤语的转换。

在线体验:https://opencc.byvoid.com/

Github上优秀开源C++项目推荐第二弹

SimpleNES

https://github.com/amhndu/SimpleNES

用C ++编写的NES模拟器,大约40%至50%的游戏可以正常运行(即不使用任何映射器或使用映射器1、2或3的游戏)。

Github上优秀开源C++项目推荐第二弹

Github上优秀开源C++项目推荐第二弹


分享到:


相關文章: