Java implementation of Apache Dubbo, an RPC and microservice framework for building service communication, discovery and traffic management.
smallnest/rpcx
A Go RPC framework for building microservices, with pluggable service discovery, multiple transports and codecs, and cross-language access over HTTP.
- Stars
- 8,319
- Forks
- 1,173
- Open issues
- 4
- Last commit
- 2 months ago
What is it?
rpcx is an RPC framework written in Go, modeled after Alibaba Dubbo, for splitting applications into services that call each other over the network. Go functions can be exposed as RPC methods directly, without writing proto files, and clients call them with a simple API that includes load balancing and failover options.
The framework supports TCP, HTTP, QUIC and KCP transports, and codecs including JSON, Protobuf, MessagePack and raw bytes. Service discovery can use peer-to-peer configuration, zookeeper, etcd, consul or mDNS, and load balancing offers random, round-robin, consistent hashing, weighted and other strategies. Services can also be called from other languages through an HTTP gateway, and Java and Rust implementations are available.
Features such as authorization, metadata passing, compression, heartbeats, bidirectional communication and backup requests are included. Some plugins, including etcd, zookeeper and consul, have moved to separate repositories since version 1.7.6.
Key features
- 01Turns plain Go methods into RPC endpoints without proto files.
- 02Supports TCP, HTTP, QUIC and KCP transports.
- 03Offers JSON, Protobuf, MessagePack and raw byte codecs.
- 04Provides service discovery via peer-to-peer, zookeeper, etcd, consul or mDNS.
- 05Includes load balancing strategies and failover, failfast and failtry fault tolerance modes.
Use cases
- Splitting a Go backend into microservices that call each other over RPC.
- Letting services written in other languages call Go services through the HTTP gateway.
- Building internal service-to-service communication that needs service discovery and load balancing.
In collections
Topics
FAQ
- What is rpcx?
- A Go RPC framework for building microservices, with pluggable service discovery, multiple transports and codecs, and cross-language access over HTTP. rpcx is an RPC framework written in Go, modeled after Alibaba Dubbo, for splitting applications into services that call each other over the network. Go functions can be exposed as RPC methods directly, without writing proto files, and clients call them with a simple API that includes load balancing and failover options.
- Is rpcx free to use? What license does it have?
- rpcx is open source under the Other license. Check the license terms before using it in commercial products.
- Is rpcx still maintained?
- Updated within 6 months. The last commit to rpcx was on Sep 3, 2026.
- What can I use rpcx for?
- Splitting a Go backend into microservices that call each other over RPC. Letting services written in other languages call Go services through the HTTP gateway. Building internal service-to-service communication that needs service discovery and load balancing.
- Where can I get rpcx?
- The source code and installation instructions are on GitHub: https://github.com/smallnest/rpcx
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Spring Cloud implementation that integrates Spring Cloud applications with Tencent's Polaris for service discovery and governance.
A Java-based API gateway for service proxying, protocol conversion, and API governance, with a plugin chain and a central Admin console.
A Go framework for distributed systems covering RPC, service discovery, messaging, storage, config, plus agents, tools and workflows.
Open-source platform for dynamic service discovery, dynamic configuration management, and service metadata management in cloud native and microservice systems.
Spring Boot starter that runs gRPC servers and clients from annotations like @GrpcService and @GrpcClient, with no manual channel or server setup.