本仓库同时保留原有 Java 适配器和新增的 obsa-rust 项目。Rust 项目位于 obsa-rust/,采用 Rust 核心 + Rust JNI 桥接 + Java/Hadoop 适配层 的结构。
从 Rust 项目开始: 项目说明与构建指南 · Rust 核心源码 · Rust JNI 源码
obs-rust-core/:Rust 核心。 实现 OBS/PFS 文件操作、HTTP 通信与签名、缓存、读写流、分片上传、资源预算和追加/重命名并发控制。obs-jni/:Rust 编写的 JNI 桥接。 构建原生动态库,将 Java 调用接入 Rust 核心,并处理原生句柄、缓冲区和异常边界。java/:Java 侧 JNI 接口。 提供调用原生库的 Java 绑定。hadoop-adapter/:Java/Hadoop 适配层。 对接 HadoopFileSystem、配置、凭据和流接口;底层存储操作通过 JNI 交给 Rust。
Hadoop 的调用路径为:Hadoop 应用 → Java 适配层 / JNI 接口 → Rust JNI 桥接 → Rust 核心 → OBS/PFS。Rust 核心也可由 Rust 程序直接使用。
.
├── obsa-rust/ # Rust 项目入口
│ ├── Cargo.toml # Rust workspace:obs-rust-core + obs-jni
│ ├── obs-rust-core/ # Rust 文件系统与存储核心、测试
│ ├── obs-jni/ # Rust JNI 原生动态库
│ ├── java/ # Java 侧 JNI 绑定
│ ├── hadoop-adapter/ # Hadoop FileSystem 适配与集成测试
│ ├── scripts/ # 构建和本地验证脚本
│ ├── docs/ # 设计、验证记录和性能基准数据
│ └── README.md # 配置、构建、使用与能力边界
├── hadoop-huaweicloud/ # 原有 Java Hadoop OBS 项目
├── flink-release/ # 原有 Flink 发布目录
└── release/ # 原有发布目录
Rust 项目已具备可运行的本地实现,并完成多轮 Rust、JNI、Hadoop 契约及模拟压力验证。真实 OBS/PFS、目标集群作业和长期生产运行尚未完成验收;本地基准不能直接代表真实云端性能,也不构成生产就绪声明。
- Hadoop OBS(Java):位于当前分支的
hadoop-huaweicloud/。它与obsa-rust/hadoop-adapter/是不同的项目目录。 - Flink OBS:原有项目说明指向
flink-obs分支的flink-obs-fs-hadoop/。 - Ranger OBS:原有项目说明指向
ranger-obs分支,用于管理 OBS 权限。
The new Rust OBS/PFS implementation lives in obsa-rust/. Start with its README or browse the Rust core.
obs-rust-corecontains the storage and filesystem implementation in Rust.obs-jniis the JNI bridge, also written in Rust.javaandhadoop-adapterprovide the Java bindings and Hadoop integration that call the Rust implementation.hadoop-huaweicloudcontains the original Java Hadoop adapter, which remains alongside the Rust project.
Local tests and simulated benchmarks are available. Real OBS/PFS service validation and production workload acceptance are still pending.