WeOpen-Star icon indicating copy to clipboard operation
WeOpen-Star copied to clipboard

F-Stack 贡献指南

Open jfb8856606 opened this issue 3 years ago • 1 comments

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 短链接业务的服务端。
  • 运行于用户态的完整协议栈,对于协议栈行为的研究和测试非常有价值。

以下是项目可参与的方向:

  1. 我们列出了适合首次加入 F-Stack 社区的贡献者的问题、适合对 F-Stack 项目有足够了解的贡献者的特殊 issue 挑战(参见下面的列表),以及一些社区日常任务。如果你愿意解决,请点击该 issue 并在评论区留言“WeOpen Star”(日常及其他任务无需此操作)。提交 PR 时,请同时将 PR 链接到相应的 issue。

  2. 对于成功完成任意任务的贡献者,为记录你的积分以及发放奖励,请自行前往你的积分主页记录。积分记录规则详见:关于积分

在开始贡献之前:

  • 请加入【开源摘星计划】社群

    请添加官方小助手微信(微信号:TCOSOO1)

🌟我们对贡献任务进行了分类,以帮助你找到你感兴趣的任务

社区日常任务

积分奖励:1分/个

  • 提交有意义的Issue/Comment,请在创建和回复相关 issue 时表明"WeOpen-Star"

文档类

积分奖励:10分/个

  • 微信公众号 FStack 中的相关中文文档翻译为英文文档,并提交Pull Request到 docwiki.
  • 提交新的使用经验心得、代码流程、架构等文档到wiki,要求为英文

编程类

积分奖励:50分/个

  • 调试 BBR/RACK 拥塞算法存在的问题并解决,可申请特殊积分
  • 其他有效的改进,如 ipfw工具对IPv6支持、ff_socket兼容本机通信 、Nginx1.20的支持、Redis7.0支持等

其他类

开源知识分享官:提交对本项目的学习笔记或开源相关笔记(视频/文章皆可)并发布在任意社区/博客/视频平台即可申报积分。

积分奖励:10分

额外奖励:每月将为10名优秀笔记作者奖励QQ周边公仔、QQ音乐/腾讯视频年卡及腾源会T恤等好礼。

贡献帮助

请添加微信 johnjfb 为好友,一起进行 F-Stack 的交流和讨论/

jfb8856606 avatar May 13 '22 12:05 jfb8856606

jfb8856606 avatar Sep 02 '22 07:09 jfb8856606