rpcx is a microservices RPC framework for Go that enables building distributed systems with service discovery, load balancing, and cross-language support.
The tool addresses the need for efficient remote procedure calls in microservice architectures. It works by allowing developers to expose Go methods as RPC services that can be called by clients over the network. The framework handles service registration, discovery, and routing automatically, supporting multiple transport protocols including TCP, HTTP, QUIC, and KCP. Clients can invoke services with minimal boilerplate code, and the framework manages load balancing and failover across multiple service instances.
Teams building Go microservices should consider rpcx if they need a lightweight alternative to heavier frameworks. It suits projects where services are primarily written in Go but need to interoperate with other languages—the tool provides a gateway for HTTP access, Java client and service libraries, and Rust support. The framework is designed to scale horizontally across cloud environments. Service discovery integrations with etcd, Consul, Zookeeper, and Redis are available through separate plugin repositories, allowing teams to choose their preferred registry without bloating the core installation.
The project maintains a stable branch alongside active development on master. A debugging tool called rpcxdump has been added to help diagnose communication issues between services and clients. The codebase supports optional build tags for advanced transport protocols like QUIC, KCP, and experimental RDMA support, allowing users to include only the features they need.