github好玩有趣的开源项目(项目推荐第二弹)
github好玩有趣的开源项目(项目推荐第二弹)基于 C 11 的 tinySTL,代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合新手学习与参考。现在已经发布了 2.x.x 版本,实现了大部分 STL 中的容器与函数 。项目已经处于长期维护的阶段,即基本不会增加新的内容,只修复发现的 bug。https://github.com/Alinshans/MyTinySTL基于Qt5的开源跨平台Redis桌面管理器。https://github.com/plibither8/2048.cpp一个C 写的终端 2048 游戏。
Sogou C Workflowhttps://Github.com/sogou/workflow
搜狗公司C 服务器引擎,支撑搜狗几乎所有后端C 在线服务,包括所有搜索服务,云输入法,在线广告等,每日处理超百亿请求。这是一个设计轻盈优雅的企业级程序引擎,可以满足大多数C 后端开发需求。
- 快速搭建http服务器:
#include <stdio.h>
#include "workflow/WFHttpServer.h"
int main()
{
WFHttpServer server([](WFHttpTask *task) {
task->get_resp()->append_output_body("<html>Hello World!</html>");
});
if (server.start(8888) == 0) { // start server on port 8888
getchar(); // press "Enter" to end.
server.stop();
}
return 0;
}
- 作为万能异步客户端。目前支持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几个压缩库。
https://github.com/uglide/RedisDesktopManager
基于Qt5的开源跨平台Redis桌面管理器。
2048.cpphttps://github.com/plibither8/2048.cpp
一个C 写的终端 2048 游戏。
MyTinySTLhttps://github.com/Alinshans/MyTinySTL
基于 C 11 的 tinySTL,代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合新手学习与参考。现在已经发布了 2.x.x 版本,实现了大部分 STL 中的容器与函数 。项目已经处于长期维护的阶段,即基本不会增加新的内容,只修复发现的 bug。
示例代码如下:
// 弹出尾部元素
template <class T>
void deque<T>::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);
}
}
TrafficMonitor
https://github.com/zhongyang219/TrafficMonitor
Traffic Monitor是一款用于Windows平台的网速监控悬浮窗软件,可以显示当前网速、CPU及内存利用率,支持嵌入到任务栏显示,支持更换皮肤、历史流量统计等功能。
- 显示当前实现网络传输速率、CPU和内存占用率
- 如果电脑有多个网卡,支持自动和手动选择网络连接
- 查看网络详细信息
- 支持嵌入到任务栏显示
- 支持更换皮肤和自定义皮肤
- 历史流量统计
https://github.com/BYVoid/OpenCC
中文简繁转换开源项目,支持词汇级别的转换、异体字转换和地区习惯用词转换(中国大陆、台湾、香港、日本新字体)。不提供普通话与粤语的转换。
在线体验:https://opencc.byvoid.com/
SimpleNEShttps://github.com/amhndu/SimpleNES
用C 编写的NES模拟器,大约40%至50%的游戏可以正常运行(即不使用任何映射器或使用映射器1、2或3的游戏)。