30 open-source projects similar to grpc/grpc-java, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Grpc Java alternative.
grpc-go is a Go language implementation of the gRPC framework, providing a remote procedure call library for high-performance service communication. It uses the HTTP/2 protocol to execute functions on remote servers as if they were local methods and utilizes protobuf service bindings to generate type-safe client and server code. The project features a bidirectional streaming transport that supports asynchronous, full-duplex message streams between clients and servers. This networking layer allows for various communication patterns, including client-to-server and server-to-client streaming, to
Dubbo is a Java RPC framework and microservices governance platform designed for high-performance remote procedure calls in distributed architectures. It provides the foundational components necessary to connect distributed services across a network, including a binary data serialization library and a distributed service registry. The platform distinguishes itself through a comprehensive governance suite that manages service discovery, load balancing, and traffic routing. It enables precise control over network traffic via conditional routing and a pluggable extension mechanism based on a ser
brpc is a high-performance C++ RPC framework and network programming library designed for building distributed systems. It functions as a multi-protocol RPC server capable of hosting and detecting multiple communication protocols, including gRPC, Thrift, HTTP, Redis, and Memcached, on a single TCP port. The project distinguishes itself through high-throughput data transport and memory efficiency, utilizing RDMA-based transport to bypass the kernel TCP stack and zero-copy memory management to eliminate data duplication. It also implements the Raft algorithm for consensus-based state replicatio
This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring Boot applications. It serves as a microservice communication framework that enables the implementation of RPC services, service discovery, and distributed governance through automated configuration. The project distinguishes itself by providing a cross-language RPC bridge, allowing services written in different languages to communicate via standards such as gRPC and Protobuf. It further enables the exposure of backend microservices as REST endpoints using the Triple protocol for
Hyper is a low-level networking library designed for building high-performance HTTP clients and servers. It provides a foundational toolkit for creating network services that leverage asynchronous execution and memory-safe data handling, supporting both HTTP/1 and HTTP/2 protocols. The library distinguishes itself through a protocol-agnostic architecture that separates transport logic from HTTP semantics. It utilizes a service-trait abstraction to decouple network logic from the underlying transport, enabling developers to inject custom middleware for request interception and response transfo
gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between distributed services. It utilizes a structured interface definition language to generate consistent client stubs and server skeletons, enabling applications to invoke methods on remote servers as if they were local objects. By leveraging the HTTP/2 transport layer, the framework supports efficient binary serialization and multiplexed data exchange across diverse programming environments. The framework distinguishes itself through its support for flexible communication patterns, incl
Apache Dubbo Go is a Go language implementation of the Apache Dubbo framework designed for building high-performance microservices. It serves as a cross-language RPC framework and microservices communication layer that enables remote procedure calls between services written in different programming languages. The framework functions as a service governance toolset and a distributed service mesh proxy, allowing data planes to connect with external control planes in proxy or proxyless modes. It specifically provides a compatibility layer to facilitate communication between Go and Java-based ser
This project is a gRPC framework for Node.js used to implement high-performance remote procedure calls. It provides a client-server communication library that utilizes HTTP/2 for streaming, multiplexing, and binary framing, alongside a protocol buffers implementation for defining structured data and generating service stubs. The framework includes a toolchain to compile protocol buffer files into language-specific objects and supports the generation of static TypeScript type definitions to validate objects at runtime. The library covers distributed system networking and microservices communi
Pomelo is a distributed Node.js game server framework designed for building scalable multiplayer game backends and real-time web applications. It employs a multi-process architecture to distribute application logic horizontally across a cluster of machines, enabling high concurrency and balanced network traffic. The framework utilizes a WebSocket communication layer to manage bidirectional data exchange between diverse web clients and server clusters. It incorporates a remote procedure call system for triggering functions across remote server processes and uses Protocol Buffers for binary ser
This project is a Go programming language study guide and backend development course. It provides a collection of learning notes and practical examples covering fundamental syntax and core language concepts. The repository functions as a tutorial for building web APIs and network services. It includes implementation guides for the Gin web framework and code demonstrations for creating remote procedure call services using Protocol Buffers. The material covers backend API engineering, including routing, data binding, and error handling. It also includes examples of structured logging and custo
Consul is a distributed coordination service and service mesh tool used for service discovery, health monitoring, and cluster state management across dynamic networks. It provides a platform for locating network addresses of services and managing traffic across distributed infrastructure using DNS and HTTP interfaces. The project distinguishes itself through multi-datacenter network orchestration, enabling the federation of services across different regions using mesh gateways. It secures communication via a service mesh architecture that employs identity-based authorization and mutual TLS en
This project is a comprehensive Java backend engineering guide and technical reference focused on high-concurrency design, distributed systems, and microservices architecture. It provides detailed strategies for decomposing monolithic applications, managing service discovery, and implementing the architectural patterns required for scalable backend environments. The repository distinguishes itself through an extensive collection of big data algorithmic references and database scaling strategies. It covers memory-efficient techniques for analyzing massive datasets, such as Top-K element extrac
This is a header-only C++ library and asynchronous network framework used to implement WebSocket clients and servers. It provides a full implementation of the WebSocket protocol, including handshakes, subprotocol negotiation, and frame parsing. The framework is distinguished by a policy-based transport layer and template-driven protocol negotiation, allowing the underlying network implementation to be swapped between raw buffers, streams, or custom policies. It supports per-message deflate compression to reduce data transmission volume and integrates Transport Layer Security for encrypted bid
MagicOnion is a remote procedure call framework for the .NET platform and Unity. It functions as a binary API protocol and real-time communication engine that uses shared interfaces to provide type-safe communication between clients and servers. The framework distinguishes itself through its compatibility with ahead-of-time compilation environments, utilizing source generators for client proxies and serialization to support mobile and console platforms including those using IL2CPP. It provides a specialized middleware layer for Unity that handles engine-specific data types and ensures runtime
MagicOnion is a .NET RPC framework used to build type-safe remote procedure call services using shared interfaces for communication between servers and clients. It functions as a binary serialization framework and a distributed service orchestrator, providing a network layer for low-latency streaming and real-time data exchange. The project distinguishes itself through an AOT-compatible network client that uses source generators to support ahead-of-time compilation in restricted runtime environments. It enables bidirectional communication and real-time data streaming, allowing servers and mul
Linkerd is a Kubernetes service mesh that manages network traffic between microservices. It functions as a transparent networking proxy, layer 7 traffic manager, and mutual TLS security layer, providing observability and reliability for service-to-service communication without requiring changes to application code. The project distinguishes itself through a sidecar-proxy architecture that intercepts TCP and application-level traffic to provide automatic mutual TLS encryption and identity verification. It enables cross-cluster service networking to link multiple clusters and implements cloud-n
Netty is an asynchronous network framework designed for building scalable protocol servers and clients. It utilizes an event-driven reactor pattern and a non-blocking input/output model to decouple connection handling from application logic, allowing for the development of responsive network services that manage high volumes of concurrent connections. The framework distinguishes itself through a modular pipeline-based processing chain that enables the implementation of custom binary or text-based protocols. It provides a pluggable transport abstraction that allows developers to switch between
EasySwoole is a high-performance asynchronous PHP framework designed for building event-driven networks and persistent memory applications. It functions as a toolkit for developing distributed microservices and asynchronous servers capable of handling concurrent HTTP, TCP, UDP, and WebSocket connections. The framework distinguishes itself through a persistent memory process execution mode that eliminates the overhead of repetitive file loading and invocation during request handling. It provides built-in support for distributed systems via remote procedure call implementations and service disc
Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages. The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d
protobuf-net is a binary serialization framework and .NET library that implements the Protocol Buffers specification. It functions as a schema-based serialization tool and contract-first data mapper, converting complex object graphs into a compact binary format for storage and network transmission. The library enables cross-platform data exchange and high-performance networking by reducing payload sizes and processing time. It specifically supports object hierarchy persistence, allowing the serialization and reconstruction of complex class structures that include inheritance and derived types
This project is a comprehensive computer networking textbook and instructional resource. It serves as a technical guide for the design and implementation of network layers, protocols, and hardware architecture, covering the spectrum from physical links to application-layer protocols. The content provides a detailed study of standards for congestion control, reliable data delivery, and internetwork routing. It includes specialized technical material on network security, public-key infrastructure, and the operation of modern cloud infrastructure and data centers. The material covers a broad ra
The OWASP Cheat Sheet Series is a comprehensive, community-driven repository of concise security best practices and defensive coding patterns. It serves as a centralized knowledge base for developers and security professionals, providing actionable guidance to secure applications across the entire software development lifecycle. The project covers a vast array of security domains, ranging from fundamental web application hardening and authentication protocols to specialized controls for modern infrastructure and artificial intelligence systems. What distinguishes this project is its decentral
OkHttp is an HTTP client for the JVM and Android that enables network communication via synchronous and asynchronous requests. It provides a core identity as a comprehensive networking toolkit featuring a WebSocket client for bidirectional data synchronization, a TLS security toolkit for encrypted communication, and a programmable HTTP mock server for simulating backend responses. The project distinguishes itself through a specialized security and performance architecture. It implements mutual TLS, certificate pinning, and DNS over HTTPS to secure data in transit, while utilizing connection p
Eureka is a service registry and discovery server that serves as a coordination tool for microservices. It provides a distributed service registry where instances record their network locations and health status to enable dynamic communication without the use of hardcoded addresses. The system functions as a client-side load balancing framework, providing location data to consumers so they can distribute network traffic across available instances. It employs a heartbeat-based health monitor to track instance availability and automatically removes unresponsive nodes from the registry to manage
NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t
Encore is a distributed systems framework designed to unify backend development, infrastructure provisioning, and observability. It functions as an infrastructure-as-code platform that allows developers to define cloud resources, databases, and messaging topics directly within their application code. By analyzing these declarations at compile-time, the system automatically manages the deployment of cloud resources and security policies, ensuring parity between local development and production environments. The platform distinguishes itself through its integrated development experience, which
uvloop is a high-performance replacement for the standard Python event loop. It functions as a drop-in substitute designed to accelerate asynchronous networking tasks and reduce latency in event-driven software systems. The project achieves its performance characteristics by utilizing a Cython-based extension module that wraps the libuv C library. By leveraging low-level system calls for event-driven input and output multiplexing, it manages concurrent network requests and subprocess execution with minimal overhead. The implementation supports scalable backend service development by handling
This project is an educational framework designed to teach the fundamentals of building core distributed systems and web services from scratch in Go. It provides a collection of modular implementations that demonstrate how to construct essential infrastructure components, including web servers, remote procedure call systems, distributed caches, and database abstraction layers. The framework distinguishes itself by focusing on the internal mechanics of these systems rather than providing a high-level abstraction for production use. It covers the implementation of complex architectural patterns
grpc-rust is a native gRPC framework for Rust designed for building high-performance remote procedure call clients and servers. It provides an asynchronous communication stack and a protocol buffers implementation for encoding, decoding, and generating type-safe code from service definitions. The project enables the implementation of unary and bi-directional data streaming over the HTTP/2 protocol. It includes specialized support for gRPC-Web integration, allowing browser-based clients to communicate with services through protocol translation. The infrastructure covers a broad range of distr
This project is a comprehensive Python network request framework designed for both synchronous and asynchronous HTTP communication. It provides a high-performance client capable of executing non-blocking requests within event-driven applications, while also supporting standard blocking calls for simpler scripts. The library is built to operate natively across diverse asynchronous runtimes, automatically detecting and utilizing the underlying event loop for concurrency. What distinguishes this library is its modular architecture, which decouples request construction from network execution thro