Supports grpc+json and the curl tool (#148)

* feat: 支持curl直接访问

将json消息转化为grpc消息,继而交给grpc handle进行处理,并以json格式返回数据

* fix(fix bug):

* refactor: 将生成Codec的逻辑转移到了TripleServer

* Feat: Added support for JSON encoding types(#145)

* fix: Fixed a bug related to compression(#145)

* perf: Improved code reuse-related logic(#145)

Optimized the logic of TripleServer and TripleClient, achieving code
reuse.
Merged encoding and encoding_json

* style: Formatted the code according to the cargo fmt standard(#145)

* perf: Resolved the warnings from cargo check(#145)

* perf: Optimized the code structure and removed redundant code(#145)

* perf: Optimized the configuration format as well as the configuration loading method.(#145)

* perf: Removed configuration using serialization methods.(#145)

The RPC client now exclusively uses protobuf for serialization.

---------

Co-authored-by: urara <271014355@qq.com>
17 files changed
tree: 6fa4358c0ea97acc0f0646cf2e58b0c151604619
  1. .github/
  2. common/
  3. config/
  4. docs/
  5. dubbo/
  6. dubbo-build/
  7. examples/
  8. metadata/
  9. protocol/
  10. registry/
  11. remoting/
  12. .asf.yaml
  13. .gitignore
  14. .licenserc.yaml
  15. .rustfmt.toml
  16. application.yaml
  17. Cargo.toml
  18. CONTRIBUTING.md
  19. LICENSE
  20. NOTICE
  21. README.md
  22. README_CN.md
  23. release.toml
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.