F-Stack 贡献指南
F-Stack贡献指南
欢迎来到开源摘星计划 F-Stack 贡献专栏 。F-Stack 已加入开源摘星计划,该计划提供奖励以鼓励你加入我们的社区:所有参与本项目贡献的开发者都可获得相应贡献积分、奖励以及被评选为年度摘星100 人的机会,活动及奖励详情请见:开源摘星计划。
📅活动时间:2022年5月-12月
🌟关于 F-Stack
F-Stack是一个用户态的高性能的网络接入开发包,基于 DPDK、FreeBSD 协议栈、微线程接口、部分上层应用等供应用接入使用,用户只需要重点关注业务逻辑,简单的接入 F-Stack 即可实现高性能的网络服务器。 使用纯 C 开发(部分第三方组件使用了C++,F-Stack 进行了封装),容易上手,但也要求用户有一定的 DPDK 使用基础。使用 BSD 2-Clause 开源协议,对商业使用友好。 F-Stack 技术特点:
- 多进程架构,每个进程与一个 CPU 核心、网卡收发队列进行绑定,拥有更好的内存局部性,避免缓存失效,每个进程拥有自己进程独立的协议栈,应用接口和应用层业务逻辑,规避了内核的多种性能瓶颈,各个进程间无数据共享,有非常好的横向扩展能力
- 轮询模式,无锁、无调度、无上下文切换
- 使用 DPDK 开发套件作为网络 I/O 模块,并定期升级支持新的 LTS 版本
- FreeBSD 协议栈移植到用户态,功能完整稳定,周边工具丰富,可以跟进社区的改进,代码逻辑清晰易懂,使用 BSD 开源协议商业友好
- 提供了 POSIX 兼容接口方便其他应用的迁移
- 微线程框架,支持同步编程,异步执行 F-Stack 的适用场景:
- 对大部分高并发的网络应用场景都有较好的性能优化和使用价值,其中最适合的场景是超大并发的 TCP 短链接业务的服务端。
- 运行于用户态的完整协议栈,对于协议栈行为的研究和测试非常有价值。
以下是项目可参与的方向:
-
我们列出了适合首次加入 F-Stack 社区的贡献者的问题、适合对 F-Stack 项目有足够了解的贡献者的特殊 issue 挑战(参见下面的列表),以及一些社区日常任务。如果你愿意解决,请点击该 issue 并在评论区留言“WeOpen Star”(日常及其他任务无需此操作)。提交 PR 时,请同时将 PR 链接到相应的 issue。
-
对于成功完成任意任务的贡献者,为记录你的积分以及发放奖励,请自行前往你的积分主页记录。积分记录规则详见:关于积分。
在开始贡献之前:
-
请加入【开源摘星计划】社群
请添加官方小助手微信(微信号:TCOSOO1)
🌟我们对贡献任务进行了分类,以帮助你找到你感兴趣的任务
社区日常任务
积分奖励:1分/个
- 提交有意义的Issue/Comment,请在创建和回复相关 issue 时表明"WeOpen-Star"
文档类
积分奖励:10分/个
编程类
积分奖励:50分/个
- 调试 BBR/RACK 拥塞算法存在的问题并解决,可申请特殊积分
- 其他有效的改进,如 ipfw工具对IPv6支持、ff_socket兼容本机通信 、Nginx1.20的支持、Redis7.0支持等
其他类
开源知识分享官:提交对本项目的学习笔记或开源相关笔记(视频/文章皆可)并发布在任意社区/博客/视频平台即可申报积分。
积分奖励:10分
额外奖励:每月将为10名优秀笔记作者奖励QQ周边公仔、QQ音乐/腾讯视频年卡及腾源会T恤等好礼。
贡献帮助
请添加微信 johnjfb 为好友,一起进行 F-Stack 的交流和讨论/