workflow:适合C++开发者进阶的开源项目

真正做到把云端的技术移植到嵌入式设备上运行。

适用于嵌入式几大特点:

1、支持多平台、多体系结构

2、编译快

Workflow除OpenSSL以外不依赖其他库,且在接口层是没有模版的,因此编译速度常快,不到一分钟即可编出一个可的lib。

3、体积小、支持编译剪裁

Workflow的Kafka协议默认是不编译的,除此之外,还可以裁剪掉其他不常的模块。

并且可以通过strip命令去掉符号链接,即可让库件缩到400k左右。

4、运行时内存小、调度快

作为一个异步调度的库,Workflow调度性能一直是常好的。另外运时内存占也常的小。

5、自定义协议非常方便

社区活跃以及项目负责人积极回复问题也是一个亮点,如果在框架搭建和移植上出现问题,在社区上提问都会得到快速响应。

移植到嵌入式设备的开源支持

据悉前已经有许多户到了嵌式上了。github官方也做出了耐心的解释。

框架能做什么

1、轻松的搭建server

2、轻松高效的发起客户端请求

以往的C++server需要访问mysql时,可能使用的是传统的客户端。在一个线程下以同步阻塞的方式等待数据到来。如果有多个网络请求希望并发,那么用户需要管理好多个mysqlcli对象。

workflow完美的解决了这一系列问题,把所有这种用户请求交给内部的poller线程统一管理,实现了高效的非阻塞IO行为,提升了server作为客户端请求数据时的性能表现。再也不用担心这种客户端行为影响server整体的性能。

支持自定义协议client/server:用户可构建自己的RPC系统,搜狗有个开源项目srpc就是以这个框架为基础实现的。

3、可建构异步任务流

支持串联,支持并联,支持串并联的组合体,也支持复杂的DAG结构。

4、异步IO

在Linux系统下可作为文件异步IO工具使用,性能超过任何标准调用。

任务流框架设计

在作者的设计理念中,一切业务逻辑皆是任务,多个任务会组成任务流,任务流可组成图,这个图可能是串联图、并联图,也可能是串并联图,类似于这种:

或者是这种复杂的DAG图:

当然图的层次结构可由用户自定义,很牛的一点是支持动态创建任务流。

最近很多小伙伴领取了程序员知识图谱,反馈很好。我们知道每一个技术领域都有它完整地知识体系,而良好的知识体系有助于技术人员的发展和成长,减少学习过程中所走的弯路。所以还没有领取的小伙伴赶紧领取起来吧!(底部有领取入口哦)

长沙市望城经济技术开发区航空路6号手机智能终端产业园2号厂房3层(0731-88081133)

THE END
1.开源项目推荐:algolearnalgo-learn学习数据结构与算法的代码示例,目前提供 Java、Python、Go、C++ 多种语言支持。 项目地址: https://gitcode.com/gh_mirrors/al/algo-learn 项目基础介绍和主要编程语言 algo-learn是一个专注于数据结构与算法学习的开源项目,旨在帮助开发者通过实践来掌握和提升算法与数据结构的基本功。该项目提供了多种编https://blog.csdn.net/gitblog_00381/article/details/144286650
2.锐英源软件C++开源社区C++开源项目研究锐英源软件C++开源社区,关注C++开源项目研究和C++开源项目学习研讨,提供C++开源英语相关文档,供大家提升基本素质。http://www.wisestudy.cn/opensource-cpp.html
3.值得学习17个C/C++超经典开源项目腾讯云开发者社区总结了17个 C/C++业内非常经典的开源项目,能够很好的帮助上手与进阶C/C++项目开发,积累项目经验。 包含C/C++ 各个领域,超高含金量。 熟练掌握,面试加分项! 再也不用怕面试没项目了! 目录 值得学习的C语言开源项目 Libevent Memcached Redis Webbench https://cloud.tencent.com/developer/article/2181809
4.一个收集C/C++新手学习的入门项目,整理收纳开发者开源的小项目本repo搜集全网适合C/C++新手学习的入门项目,整理收纳开发者开源的小项目、工具、框架、游戏等,帮助大家更好地学习c/c++。 所有数据来源于互联网。所谓取之于互联网,用之于互联网。 如果涉及版权侵犯,请邮件至wchao_isvip@163.com,我们将第一时间处理。 https://github.com/0voice/introduce_c-cpp_manual?tab=readme-ov-file
5.我的一些实用的Java/C++开源项目整理企业架构本文整理了我之前做的一些Java/C++开源项目,这些项目在我的博客中分别介绍过,为了方便阅读和使用,我进行了整理。 Java项目: Java 全能高效 MVC & REST 开发框架 Portal-Basic Java 日志切割清理工具 Log-Cutter C++项目: 通用高性能 Windows Socket 组件 HP-Socket https://www.iteye.com/news/27794
6.整理了GitHub上80个c/c++的项目,看着学吧~不保熟阅读学习一些库、框架以及集成项目的源码。学习大厂或是大牛的编码规范、项目结构之类的,提高阅读源码的能力。对于我们精进自己的技术是十分有帮助的。 1.《30天自制C++服务器》 ①语言:c++ ②来源:GitHub 目前star:4.8k ③项目地址:https://github.com/yuesong-feng/30dayMakeCppServer https://www.nowcoder.com/discuss/614479695123316736
7.有什么适合提高C/C++网络编程能力的开源项目推荐–PingCode通过FFmpeg,开发者可以学习音视频数据的处理和流式传输,这在网络编程中尤为重要。了解音视频压缩、封装格式转换和网络传输等知识是进行高级网络编程的必备能力。 综上,参与这些开源项目不仅能够提升C/C++网络编程能力,还能够激发开发者对于高性能网络通信、异步事件处理和现代编程技术的探索热情。通过实践,开发者能将理论https://docs.pingcode.com/ask/103214.html
8.成都四方伟业软件股份有限公司5.有效理解项目经理和客户的需求,能够清晰的沟通并在代码中实现。 岗位要求: 1.熟悉UE4 UI,动画,场景,材质等各个模块; 2.熟悉C++/C#/Java至少其中一门语言 3.1年UE4开发使用经验优先。 21、C++工程师 工作地点:成都 岗位职责: 1.参与基于C/C++开源软件系统的设计与开发; https://mba.shzu.edu.cn/2021/0304/c3756a153725/page.htm
9.Ubuntu下ROS变种ROCOS的系统架构它在保留ROS原有的点对点设计、多语言支持、架构精简、组件化工具包丰富以及免费且开源等特点的基础上, 更强调对某一特定场景的支持(如本文提及的ROCOS就是对多机调度场景的支持), 显然它会比ROS更专一, 功能更稳定, 与特定场景的适配性更好. 截止目前, 由于ROCOS需要的成本投入远低于ROS, 用户不需要学习ROS中https://c-s-a.org.cn/html/2021/7/8022.html