Rft:  Merge service_discovery branch to main (#114)

* implement service discovery

* update github action to run ci (#63)

* update github action to run ci

* update github action, copy from main branch

* load balance and service registry closed loop (#105)

* feat(cluster): loadbalance types

* feat(rpc): types alias for cluster invoker

* feat(cluster): integration

* feat(cluster): integration with examples

* feat(cluster.loadbalance): greeter example with default random loadbalance passed

* feat(cluster.loadbalance): completing roundrobin arithmetic and fixing compile warns.

* typo

* fix compile warns

* fix rustfmt check fails.

* fix cargo check fails(due to the use of nightly channel locally).

* fix: default yaml config parse failed in ci.

* ci actions zk test

* feat(registry): zk support

* feat(registry): zk support, connected to zk

* feat(registry): provider.services  key as service name

* feat(registry): serviceKey and configuration files, aligned to dubbo ecology

* feat(commons): tested Url impl

* feat(commons): tested Url impl

* feat(zk): interface service discovery

* feat(zk): create_path_with_parent_check

* feat(zk): export bug fixed.

* feat: merged branch main to service_discovery

* cargo fmt

* Rft: merge from main branch.

---------

Co-authored-by: luyanbo <robert.lyb@alibaba-inc.com>
Co-authored-by: Ken Liu <ken.lj.hz@gmail.com>
Co-authored-by: Yang Yang <962032265@qq.com>
48 files changed
tree: 23743b224dd70f4ab0a9c1b8f138e908aaa9cc9e
  1. .github/
  2. common/
  3. config/
  4. docs/
  5. dubbo/
  6. dubbo-build/
  7. examples/
  8. metadata/
  9. registry/
  10. registry-nacos/
  11. registry-zookeeper/
  12. scripts/
  13. xds/
  14. .asf.yaml
  15. .gitignore
  16. .licenserc.yaml
  17. .rustfmt.toml
  18. Cargo.toml
  19. CONTRIBUTING.md
  20. dubbo.yaml
  21. dubbogo.yaml
  22. LICENSE
  23. NOTICE
  24. README.md
  25. README_CN.md
README.md

Apache Dubbo-rust

Apache Dubbo-rust, an RPC framework that implements Dubbo written in Rust.Please visit the official website for more information.

Build Status License

[ 中文 ]

Overview

Dubbo-rust is still under development. For now, gRPC calls based on HTTP2 have been implemented.

The following libraries are mainly dependent on:

  • Tokio is an event-driven, non-blocking I/O platform for writing asynchronous applications with Rust.

  • Prost is a Protocol Buffers implementation for Rust.

  • Hyper is a fast and correct HTTP implementation for Rust.

  • Serde is a framework for serializing and deserializing Rust data structures efficiently and generically.

Features

  • :white_check_mark: RPC synchronous / asynchronous call
  • :white_check_mark: IDL code automatic generation
  • :construction: Multiple RPC protocol support (like Triple, Dubbo, gRPC, JSONRPC)
  • :construction: Support TCP/HTTP2 transport protocol
  • :construction: Service registration and discovery

Get started

Project structure

.
├── Cargo.toml
├── LICENSE
├── README.md
├── README_CN.md
├── common
│   ├── Cargo.toml
│   └── src
│       └── lib.rs
├── config
│   ├── Cargo.toml
│   └── src
│       ├── config.rs
│       ├── lib.rs
│       ├── protocol.rs
│       └── service.rs
├── contributing.md
├── docs
│   ├── filter-design.md
│   ├── generic-protocol-design.md
│   ├── readme.md
│   └── services.md
more ...

Contact Us

  • Subscribe to the official Wechat Account officialAccount

  • Search and join the DingTalk group: 44694199

Contribute

Welcome more developers to join us. About more details please check “How to contribute”.

License

Apache Dubbo-rust software is licenced under the Apache License Version 2.0. See the LICENSE file for details.