alibaba / nacos

an easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications.
https://nacos.io
Apache License 2.0
30.32k stars 12.85k forks source link

nacos client for rust #8443

Closed keqingyuan closed 1 year ago

keqingyuan commented 2 years ago

nacos client for rust

li-xiao-shuang commented 2 years ago

nacos client for rust

Do you have such a need?

intfish123 commented 2 years ago

I has used nacos in production env. and there are some rust service need to regist in nacos.
But there are no sdk for rust.

CherishCai commented 2 years ago

I would like to contribute to the Nacos Rust sdk; let's work on this project together.

Can I contribute CherishCai/nacos-sdk-rust to nacos-group first, and then find participants to improve it together?

CherishCai commented 2 years ago

Nacos sdk Rust

背景/动机

  1. Nacos 多语言生态可以扩充到 Rust,也受益于其他开源社区,例如 Dubbo-Rust(建设中),Sentinel-Rust 等中间件。
  2. Rust 生态在蓬勃发展,目前 issue 中有多次提及 Nacos 支持 Rust 客户端,所以能满足部分用户诉求。

故而,希望 Nacos 社区一同构建 Rust 版的客户端(2.x gRPC 交互),满足中间件及用户诉求的配置管理/服务发现能力。

详细说明

另一些背景资料:Dubbo-Rust(建设中)项目组的同学,构建了 Nacos 注册中心模块 Naming 的支持 sezi-yuan/nacos-sdk-rust,但已有多个月未维护且仅是 1.x 的逻辑,不符合 gRPC 主流交互方案。感谢此同学的贡献,提供了很多可以借鉴的实现参考。

而 Nacos 新构建的 Rust 客户端,完全可以抛弃历史包袱全新设计,仅支持 Nacos 2.x 的 gRPC 交互,提供配置管理/服务发现两大核心能力。

注:参考社区优秀 Rust sdk 项目,例如 opentelemetry-rust, skywalking-rust, sentinel-rust, dubbo-rust

功能拆解(根据最新 Java 客户端,调整/增加/逐步完善)

Config 配置管理模块

Naming 服务注册模块

Common 通用能力

主要依赖包

为主要功能的实现,将会引入以下依赖包。

可能存在的问题

期望社区同学讨论和参与~

CherishCai commented 2 years ago

请关注:https://github.com/nacos-group/nacos-sdk-rust.git

CherishCai commented 2 years ago

https://github.com/nacos-group/nacos-sdk-rust/pull/7


发布了初版 nacos-sdk=0.1.1 ,Config 模块基本可用,欢迎社区同学贡献、修复和标准化 api

https://crates.io/crates/nacos-sdk

https://docs.rs/nacos-sdk/0.1.1/nacos_sdk/

CherishCai commented 1 year ago

发布了完善版 nacos-sdk=0.2.0 ,Config/Naming 功能均可用,同时包括登陆鉴权,配置解密插件均在这个版本提供。

https://crates.io/crates/nacos-sdk

https://docs.rs/nacos-sdk/0.2.0/nacos_sdk/

后续请到仓库 https://github.com/nacos-group/nacos-sdk-rust ,或许这个 issue 可以关闭啦。