30 open-source projects similar to grpc/grpc-web, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Grpc Web alternative.
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
grpc-web is a translation layer and proxy system that enables web browsers to communicate with gRPC backend services. It consists of a gRPC Web Proxy that converts browser-based HTTP and WebSocket requests into standard gRPC calls, along with a TypeScript gRPC client for making strongly-typed remote procedure calls from browsers or Node.js environments. The project features a bidirectional streaming bridge that utilizes WebSockets to bypass browser limitations, allowing for full-duplex communication and client-side data streaming. It includes a protocol buffer code generator that parses schem
go-grpc-middleware is a gRPC middleware framework for Go designed to handle cross-cutting concerns, reliability, and observability. It provides a collection of interceptors that can be used to modify inbound and outbound calls to enforce system-wide policies. The framework distinguishes itself through specialized toolkits for service reliability, including automatic retry logic for failed client calls and panic recovery mechanisms that translate runtime crashes into standard error responses. It also features an observability suite for collecting performance metrics and recording request activ
Connect-go is a library for building type-safe remote procedure call services that are wire-compatible with gRPC and HTTP. It provides a Go implementation of Protocol Buffers for structured data exchange, enabling the creation of multi-protocol RPC servers and generated type-safe clients. The framework is distinguished by its polyglot protocol support, allowing a single server handler to serve requests using several different protocols simultaneously over HTTP. This includes the ability to toggle between different transport protocols for the same service and the use of pluggable content negot
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
This project is a .NET implementation of the gRPC framework, providing a system for executing functions on remote servers as if they were local calls. It serves as a high-performance remote procedure call (RPC) framework that utilizes HTTP/2 for service connectivity and binary communication protocols to ensure efficient data exchange. The implementation includes a gRPC-Web proxy, which acts as a translation layer to enable browser-based applications to communicate with gRPC services through web-compatible requests. It further supports the creation of HTTP/2 service meshes to connect distribut
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
grpc-spring is a framework for integrating gRPC servers and clients into Spring applications. It provides a suite of tools for managing the lifecycle of remote procedure call servers, automating client stub injection, and implementing request interception within a Java environment. The project enables high-performance remote procedure call communication through annotation-driven service registration and automatic configuration of client stubs. It includes a specialized interceptor library for modifying requests and responses, as well as a telemetry tool for exporting performance metrics and d
Armeria is a Netty-based microservice framework used for building high-performance asynchronous services. It functions as a multi-protocol RPC server capable of exposing gRPC, Thrift, and REST services on a single unified port. The project is distinguished by its ability to run diverse communication protocols simultaneously and its integrated RPC debugging web console, which allows for the discovery and invocation of remote procedure calls via JSON. It also includes a gRPC to JSON transcoder to enable web client compatibility with Protobuf services. The framework provides a comprehensive sui
Prost is a Protocol Buffers implementation for Rust that functions as a binary serialization framework and code generator. It translates schema definitions into idiomatic Rust structs and enums, providing the logic necessary to encode and decode structured data into the Protocol Buffers binary format. The project distinguishes itself through a no-std implementation, allowing it to operate in embedded or kernel environments that lack a standard library. It also serves as a schema introspector by emitting file descriptor sets, which enables the programmatic analysis of original schema definitio
userver is a comprehensive C++ backend application platform and asynchronous framework designed for building scalable microservices. It provides a high-performance execution environment for deploying services that communicate via gRPC and HTTP using a middleware-based request pipeline. The platform distinguishes itself through a distributed service orchestration toolset that manages shared state, distributed locking, and dynamic configuration updates without requiring process restarts. It utilizes a coroutine-based asynchronous execution model and event-loop network I/O to handle high-concurr
This project is a Protocol Buffers Go compiler and code generation framework that translates schema definitions into optimized Go structures and reflection-free serialization methods. It includes a gRPC service generator for producing client and server communication code and a serialization performance toolkit for generating automated benchmarks and test suites. The framework features a plugin-based system for transforming data definitions into source code with custom field mapping and struct tag injection. It allows for custom type mapping and struct type overriding to link data fields to sp
grpcui is a browser-based interactive web interface and API client for executing remote procedure calls to gRPC servers. It functions as an HTTP to gRPC gateway that translates JSON payloads into binary protobuf messages, allowing users to trigger network requests and inspect responses through a visual web interface. The tool provides schema browsing and discovery capabilities by querying server reflection or loading local protobuf descriptor files to identify available services and method signatures. It uses these definitions to automatically generate dynamic input forms for constructing req
go-socket.io is a Go implementation of the Socket.IO protocol used to build real-time, bidirectional, and event-driven communication between servers and clients. It functions as a communication framework that manages persistent connections and maps incoming network packets to specific handler functions to execute application logic. The library enables horizontal scaling of real-time connections through a distributed pub/sub adapter, which synchronizes events across multiple server instances using an external data store. It ensures reliability across different network environments by automatic
This project is an implementation of React Server Components, providing a full-stack component architecture that blends server-side rendering with client-side interactivity. It enables the development of web applications where server-only components for data fetching and interactive client components coexist within a single component tree. The system focuses on server-client data orchestration, allowing for the execution of server functions and database mutations across the network boundary. It distinguishes itself through a hybrid component architecture that shifts component execution to the
Laf is a serverless backend platform that provides an integrated environment for cloud functions, a document database, and file storage. It serves as a complete infrastructure for developing and deploying backend logic, data persistence, and real-time communication without the need for manual server management. The platform features a browser-based IDE that allows developers to write, test, and deploy serverless functions directly within a web editor, removing the requirement for local environment setup. It also includes a WebSocket communication platform for maintaining persistent bidirectio
Rivet is a distributed infrastructure for managing the lifecycle, addressing, and persistence of stateful actors and durable execution engines. It provides a distributed process sandbox that executes application logic within lightweight isolates, ensuring resource isolation and fast cold starts. The system is designed to coordinate multi-step operations using persistent queues and timers to guarantee reliable task completion across distributed environments. The platform specifically enables the orchestration of stateful AI agents that maintain persistent memory and state across long-running i
php-amqplib is a PHP library that implements the AMQP protocol to enable communication between applications and message brokers. It provides the necessary tools to integrate PHP applications with RabbitMQ for sending and receiving messages across decoupled services. The library supports a wide range of messaging patterns, including asynchronous task processing, event-driven architectures, and remote procedure calls using correlation identifiers. It manages the full message lifecycle through publishing, queue declaration, and flexible consumption models using either push-based subscriptions or
libp2p is a modular peer-to-peer networking stack designed for building decentralized applications. It provides the core infrastructure necessary for nodes to discover and connect with other participants across a network without relying on central servers. The project distinguishes itself through a flexible transport layer that abstracts multiple protocols, including TCP, QUIC, WebSockets, and WebTransport, into a single interface. It features specialized tools for NAT and firewall traversal, such as hole punching and relay nodes, to establish direct connections between peers and web browsers
Poem is a comprehensive toolkit for building type-safe web applications, APIs, and servers using the Rust programming language. It provides a foundation for developing web servers that handle HTTP requests with strong type safety. The framework distinguishes itself by supporting multiple communication protocols through a protocol-agnostic handler mapping. This allows a single internal logic to be exposed across HTTP, gRPC services using protobuf definitions, and the Model Context Protocol for AI model integration. Additionally, it includes built-in tooling for generating OpenAPI v3 specificat
Simpl is an HTML, CSS, and JavaScript example library that provides a collection of minimal functional demonstrations of core web technologies and native browser APIs. It serves as a reference implementation and pattern gallery for frontend development, offering practical examples of how to implement common web features. The project showcases a wide range of browser capabilities, including real-time web communication via WebSockets and WebRTC, responsive web design techniques for adaptive layouts, and the implementation of offline workflows using service workers. It also provides demonstratio
Hertz is a high-performance Go HTTP framework designed for building scalable microservices, RESTful APIs, and AI applications. It functions as a high-performance web server and a communication framework for microservices, utilizing non-blocking I/O and zero-copy memory management to handle high-concurrency traffic. The project distinguishes itself through a microservices communication toolkit that supports high-efficiency remote procedure calls via gRPC and Thrift protocols. It implements an asynchronous middleware engine based on an onion model, allowing for a pluggable request-response pipe
This project is a Protocol Buffers Swift library and framework providing a runtime for serializing and deserializing structured data. It includes a code generator that transforms schema files into type-safe Swift structures and a binary serialization framework for converting data into compact streams. The library functions as a JSON data mapper, transforming messages into standard JSON representations to facilitate cross-platform data exchange. It utilizes a schema-driven approach to ensure consistent data modeling between Swift applications and services written in other languages. The frame
Emissary is a Kubernetes API gateway that manages incoming external traffic and routes it to internal microservices. It utilizes an Envoy proxy as the underlying data plane to handle high-performance traffic routing and protocol translation, with a control plane that translates Kubernetes custom resources and annotations into proxy configurations. The project provides specialized support for gRPC infrastructure, including HTTP/2 routing and gRPC-Web protocol bridging for browser-based clients. It enables zero-trust security through mutual TLS encryption and delegates identity verification to
This project is a microservice framework for building scalable backend systems in Go. It provides an architecture for distributed systems with integrated support for service discovery, load balancing, and fault-tolerance mechanisms. The framework distinguishes itself through a domain-driven layered architecture and a remote-first configuration system that synchronizes settings between remote stores and local files with automatic failover. It implements a high-performance communication model using gRPC for unary and streaming data exchange, as well as real-time notification systems for managin
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
Message Bus is a messaging library for Ruby and Rack applications designed to facilitate real-time data broadcasting and inter-process communication. It provides a framework for pushing live updates to connected clients and synchronizing state across multiple application instances, ensuring consistent data delivery in scaled environments. The library distinguishes itself through a flexible architecture that supports multiple storage backends, including Redis, PostgreSQL, and in-memory options. It functions as a persistent connection framework that serves as an alternative to traditional web s
Goravel is a full-featured development scaffold and framework for building web applications, REST APIs, and gRPC services using the Go programming language. It implements a model-view-controller architecture and provides a comprehensive toolkit for high-performance remote procedure call servers and clients. The framework is distinguished by its extensive integrated ecosystem, which includes a fluent object-relational mapper for database management and a dedicated command-line interface toolkit for administrative automation and project scaffolding. It features a driver-based service abstractio
orpc is a contract-first API development framework for TypeScript that starts with a shared contract definition and generates type-safe clients and servers from that single source of truth. It guarantees end-to-end type safety, meaning inputs, outputs, errors, and streaming data are all checked at compile time across the client–server boundary. What distinguishes orpc from typical RPC frameworks is its ability to export contracts as OpenAPI specifications, to optimize server-side rendering by calling API handlers directly inside the server process, and to support real‑time bidirectional commu
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