Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

F-Stack 贡献指南 #58

Open
jfb8856606 opened this issue May 13, 2022 · 1 comment
Open

F-Stack 贡献指南 #58

jfb8856606 opened this issue May 13, 2022 · 1 comment
Labels
help wanted Extra attention is needed

Comments

@jfb8856606
Copy link
Contributor

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 jfb8856606 added the help wanted Extra attention is needed label May 13, 2022
@jfb8856606
Copy link
Contributor Author

jfb8856606 commented Sep 2, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

1 participant