R2CN 开源实习计划简介

R2CN(RISC-V Rust for Cloud Native)开源实习计划由中国科学院软件研究所主办,目标是培养熟悉 RISC-V 架构和 Rust 编程语言的高校开发者,构建 RISC-V 架构下的云原生技术栈。该计划从 2025 年 2 月开始运作,目前已孵化开源项目 5 个、有来自各大高校的本科及硕士实习学生 70 多位。

现阶段 R2CN 孵化的开源项目

  • Rk8s - Rust 重构 Kubernetes 项目
  • Mega - Rust 重写 Git,以及开源版 Google Piper 代码管理平台
  • miniGU - Rust 实现的开源图数据库
  • RustFS - Rust 实现的分布式对象存储,用于平替 MinIO
  • gm-quic - Rust 实现的 QUIC 协议

欢迎开源项目加入 R2CN

开源项目加入 R2CN 的优势

获得 R2CN 计划的支持,项目有优质高校开发者参加,加速项目进展,提升项目质量。

什么样的项目可以加入 R2CN 开源实习计划?

  • 项目必须是开源,且代码仓库托管在 GitHub 上;
  • 项目必须是主要使用 Rust 编程语言开发;
  • 项目必须是云原生技术相关领域。

开源项目加入流程

  1. 开源项目注册
  2. 开源项目审核
  3. 安装 R2CN-Bot
  4. 导师发布任务
  5. 任务评审 详情请查阅官网,https://r2cn.dev/docs/project。

欢迎学生参与 R2CN

学生加入 R2CN 的优势

做任务,赚积分,中国科学院软件研究所按月发放薪资奖励,有机会赢取中国科学院软件研究所开源实习证书。

学生加入流程

  1. 注册前完成测试任务
  2. 学生注册与审核
  3. 任务领取与确认
  4. 导师辅导学生
  5. 提交代码和申请任务完成
  6. 积分统计与奖金发放 7.实习证明申请 详情请查阅官网,https://r2cn.dev/docs。

实习学生代表感言

韩晓阳|北京科技大学硕士研究生

 

韩晓阳照片

在参与 R2CN 开源实习的过程中,我第一次真正感受到开源协作的力量与活力。R2CN 通过积分制的方式来奖励社区贡献,让我在完成任务的同时,也更加明确了自己在社区中的价值。相比于单纯的学习和个人项目,这种公开透明、可追溯的方式,让我有了更强烈的责任感与参与感。

我的主要工作集中在 Monorepo 的 git 底层存储、Linux FUSE 文件系统,以及分布式编译调度等相关技术方向。这些任务不仅锻炼了我在 Rust 生态下的系统编程能力,也让我深刻体会到底层机制与上层应用之间的紧密联系。比如在研究 FUSE 时,我更加理解了用户态与内核态之间的交互模型;在尝试优化分布式编译调度时,我体会到性能、可扩展性与一致性之间的权衡。

这段实习让我认识到,开源不仅仅是代码的累积,更是理念与社区的传递。每一次提交、每一次 review,都是对整个社区生态的微小推动。我很感谢 R2CN 提供的平台,让我有机会将所学真正投入到开源实践中,也让我对未来继续投身开源建设充满信心。

谭驰阳|南京大学硕士研究生

 

谭驰阳照片

在参与 R2CN 的开发过程中,我深刻体会到从理论到实践的跨越既充满挑战也富有成就感。在整个项目中,我参与的最深的是RK8S的网络部分,这是一个漫长的学习与实践的过程。最初,我围绕容器网络与 Service 访问控制展开探索,尝试通过 Rust 操作 iptables 实现服务路由,这不仅锻炼了系统底层的网络控制能力,也让我对 Linux 网络命名空间、veth pair、网桥等基础组件有了更直观的理解。

而在配置 youki 容器网络时,遇到的权限问题(如 CAP_NET_RAW 和 CAP_NET_ADMIN 缺失)让我意识到容器安全模型与运行时权限控制的复杂性。尽管我尝试通过修改 config.json 赋予权限,但 youki 本身的限制让我不得不深入其源码,甚至向社区提交 PR。这个过程让我明白,开源协作不仅是代码的贡献,更是对问题本质的持续追问和解决。

随后,我开始用 Rust 重写 CNI 插件(如 bridge、host-local IPAM),这些实践不仅加深了我对 Rust 网络编程和异步生态的理解,也让我对 Kubernetes 网络模型、DNS 服务发现、子网管理等核心机制有了更全面的认识。

在完成 CNI 插件编写后,我转向 flannel 网络插件的实现与集成,从 UDP、VXLAN 到 Host-Gateway 不同 backend 的对比,让我对 overlay 网络和 CNI 机制有了系统性的把握。通过手动搭建多节点环境、编写 CNI 配置与脚本,我成功实现了跨主机容器通信,这一过程中对 etcd、flanneld、Docker 网络参数的调试,极大提升了我的系统集成和故障排查能力。

回顾整个历程,R2CN 不仅是一个项目,更是一次从“会用”到“会造”的蜕变。它让我体会到:真正的开发不仅是实现功能,更是在不断踩坑、调试、重构中,形成对系统更深层的洞察力和解决问题的能力。

姜佳良|南京大学硕士研究生

 

姜佳良照片

参加 r2cn 开源实习计划,是我首次深度参与开源项目,这一宝贵经历让我真切体会到开源社区中协作与贡献的运作方式,也显著提升了我面对复杂问题时的分析与解决能力。

项目初期,我负责实现 rk8s 的镜像仓库模块。在此过程中,我系统学习了 OCI Distribution 协议,并深入分析了多个现有实现的设计架构。通过对比与实践,我不仅理解了协议如何在具体应用中落地,也逐渐掌握了在系统设计中如何权衡稳定性与灵活性,避免过度设计带来的不必要复杂性。

随后,我的工作重心转向项目的整体构建与持续集成。rk8s 项目采用 Buck2 作为构建系统,其使用方式与 Rust 开发生态中广泛使用的 Cargo 存在较大差异,导致在依赖管理和构建过程中频繁出现冲突。在一次次排查和调试中,我逐步梳理出当前流程中的痛点,并设计实现了 cargo-buckal 插件——一个旨在帮助开发者在 Cargo 工作流中无缝集成 Buck2 的工具,支持自动生成 BUCK 构建配置。这一过程极大地锻炼了我的系统思维,也让我更深入地理解了大型构建系统背后的设计逻辑。

总的来说,R2CN 计划为我提供了一个贴近真实生产环境的实践平台。在持续的编码、调试与协作中,我不仅提升了技术能力,也增强了工程素养和对开源文化的理解。这段经历让我更加坚定了深入参与开源、持续学习与贡献的决心。

邢国富|西南石油大学本科生

 

邢国富照片

作为一名在校大三学生,参与开源,参与 R2CN 社区的建设和发展,向 Mega、rk8s 等开源项目中贡献自己的代码和想法,是一件非常有成就感和有意义的事情。在这个过程中,不仅锻炼了我对一个项目工程的快速掌控和理解能力,还在 Rust 语言、Git 原理及工作流、云原生、容器化、操作系统底层等多个方面的知识有了更加深度的理解和实践经验。同时凭借这样的开源经历和项目经验,我也成功收获了一份宝贵的实习 offer。爱上开源,开源改变世界!

康峻溪|西安石油大学本科生

 

康峻溪照片

R2CN 是中国开源计划中的先锋,Rust 中国化的践行者。除了技术强大的技术根基,R2CN也拥有平等、开放、包容的创新环境和开源精神。

我曾是一个独立开发者,认为自己可以做好很多事,而在这里见识到团队协同开发的力量之后,我很快就改变了原先的想法。这里是不可多得的净土,你的身份不再重要,对于那些想为开源事业做贡献的高校开发者,尤其是Rust爱好者,R2CN 一定是你们不可错过篇章。

Logo

开放原子旋武开源社区(简称“旋武社区”)是由开放原子开源基金会孵化及运营的技术社区,致力于在中国推广和发展Rust编程语言生态,推动Rust在操作系统、终端设备、安全技术、基础软件等关键领域的产业落地,构建安全、可靠、高效的软件基础设施。

更多推荐