feat(proto/server)!: 升级至协议 v2(统一错误模型);全面替换 Request/Response 并移除 ret

- Breaking change: 协议不向后兼容,旧客户端需同步升级
- Proto: 新增 FsOp/ErrorCause/FsError/RpcStatus;为所有 FS 接口定义 <Op>Request/<Op>Response;删除历史 ret 字段
- Server: 所有 RPC 返回统一的 RpcStatus;成功 ok=true,失败填充 FsError(operation/paths/sys_msg 等)
  - Open/Read/Write 对齐新字段(fi/data/written);Readdir/Opendir/Releasedir 等返回类型调整
  - Rename 传回 from/to;OpendirRequest 不再输入 fi,服务端生成并回传
- Docs: 新增 docs/protocol_v2.md;README 标注 v2 破坏性升级与用法
- Build: 主要面向 Windows(winapi)。Linux 环境类型检查可能失败

后续:完善 errno 抽取与 context 填充;可选引入流式 read/write 以优化大文件传输。
This commit is contained in:
2025-09-23 21:25:06 +08:00
parent 4fbaf2410a
commit d2b98b4020
4 changed files with 632 additions and 736 deletions

View File

@ -1,4 +1,13 @@
# wls_vfs
windows linux文件共享使用fuse + grpc + protobuffer
语言rust
Windows/Linux 文件共享服务端gRPC + Protobuf)。
本仓库已升级至协议 v2统一错误模型
- 所有 RPC 使用显式的 `Request`/`Response` 类型;
- 响应统一携带 `RpcStatus { ok, error }`
- 删除历史 `ret` 字段;失败信息通过 `FsError` 完整承载(`code`/`sys_msg`/`operation`/`paths`/`context` 等)。
协议详情见:`proto/lws.proto``docs/protocol_v2.md`
注意:本项目主要在 Windows 上构建运行(依赖 `winapi`)。在非 Windows 平台构建仅用于类型检查,可能失败。