/dubbo-go

Go Implementation For Apache Dubbo

Primary LanguageGoApache License 2.0Apache-2.0

Apache Dubbo-go

Build Status codecov go.dev reference Go Report Card license


中文 🇨🇳

Apache Dubbo-go, a Dubbo implementation written in Golang, is born to bridge the gap between Java/Dubbo and Go/X. Please visit our Dubbo official website for the quick start and documentation.

RPC Invocation

Dubbo-go has supported many RPC protocol, like Triple, Dubbo JSONRPC, gRPC, HTTP, HTTP2.

  • Triple is the supported protocol of Dubbo3 ecology, and is gRPC extended protocol based on HTTP2, which is compatible with gRPC service.In other words, on the basis of gRPC's reliable invocation, it adds Dubbo's service governance capability.
  • Dubbo protocol is tradition Dubbo ecology protocol, which is capitable with dubbo 2.x, and is a good choice for cross-language invocation between GO and Java old service.
  • HTTP support:As you can see in the figure above, you can invoke Triple/Dubbo service using HTTP protocol through dubbo-go-pixiu gateway.

Service Governance Capability.

Getting started

Contributing

Please visit CONTRIBUTING for details on submitting patches and the contribution workflow.

Reporting bugs

Please use the bug report template to report bugs, use the enhancement template to provide suggestions for improvement.

Contact

If you are using apache/dubbo-go and think that it helps you or want to contribute code for Dubbo-go, please add your company to the user list to let us know your needs.

See more user cases

Dubbo-go ecosystem

  • Dubbo Ecosystem Entry - A GitHub group dubbo to gather all Dubbo relevant projects not appropriate in apache group yet.
  • dubbo-go-pixiu - A dynamic, high-performance API gateway solution for Dubbo and Http services.
  • dubbo-go-samples - Samples for Apache Dubbo-go.
  • dubbo-getty - A netty like asynchronous network I/O library which supports tcp/udp/websocket network protocol.
  • triple - A golang network package that based on http2, used by Dubbo-go 3.0.
  • dubbo-go-hessian2 - A golang hessian library used by Apache/dubbo-go.
  • gost - A go sdk for Apache Dubbo-go.

License

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