Skip to content

[r2cn] Xline 代码清理与工程结构优化 #376

@genedna

Description

@genedna

[任务] Xline 代码清理与工程结构优化

[任务分值] 40 分

[背景描述]

Xline 当前核心通信机制基于 gRPC 实现,并在测试与模拟场景中引入了 madsim 库。在对 Xline 进行通信协议重构、将原有基于 gRPC 的实现调整为基于 QUIC 的实现过程中,现有工程中部分 madsim 相关依赖和代码与当前重构目标不再匹配,且对协议替换过程造成了一定干扰。

因此,有必要在本次重构过程中,对 Xline 的工程结构与相关依赖进行同步整理,以保证协议修改工作的顺利推进,并确保系统在移除 gRPC 后仍能正常构建、运行与测试。

[需求描述]

  1. madsim 相关代码与依赖清理
    对 Xline 项目中引入的 madsim 相关依赖、配置及实现代码进行系统性清理与删除,包括但不限于:

    • madsim 相关的依赖声明与构建配置
    • 基于 madsim 的测试代码与模拟环境适配逻辑
    • 与 madsim 使用场景强绑定的接口或实现细节

    清理后,应确保 Xline 的核心功能代码在不依赖 madsim 的情况下能够正常编译、运行,并通过必要的测试。

  2. Workspace 依赖管理方式调整
    Xline 当前已采用 Cargo workspace 组织多个 Rust crates,但各 crate 仍分别维护自身的依赖版本。在本次重构过程中,需要对现有 workspace 的依赖管理方式进行整理与调整:

    • 将公共依赖版本统一收敛至 workspace 根目录进行管理
    • 减少各 crate 中重复或不一致的依赖声明
    • 在不改变现有 crate 边界的前提下,调整依赖引用方式以适配统一的依赖管理模式
    • 需要引入quinn库的依赖,以便后续使用。

    通过上述调整,使工程结构与当前基于 QUIC 的通信协议实现保持一致,便于整体构建、调试与维护。

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参
    数,参考 Contributing Guide (https://github.com/web3infra-foundation/mega/blob/main/docs/contributing.md);
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址]
提交到 rk8s (https://github.com/r2cn-dev/rk8s) 仓库的 main 分支 project/slayerfs 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认 (https://r2cn.dev/docs/student/assign);

[导师及邮箱]
请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord (https://discord.gg/WRp4TKv6rh) 后在 #p-rk8s 频道和导师交
流。

  1. Quanyi Ma [email protected] ([email protected])

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 (https://r2cn.dev/docs/
    student/pre-task) 和 r2cn 开源实习计划 - 学生注册与审核 (https://r2cn.dev/docs/student/signup)

Metadata

Metadata

Assignees

Labels

Projects

Status

In Progress

Relationships

None yet

Development

No branches or pull requests

Issue actions