awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
twitchtv avatar

twitchtv/twirp

0
View on GitHub↗
7,517 stars·321 forks·Go·Apache-2.0·12 viewstwitchtv.github.io/twirp/docs/intro.html↗

Twirp

Twirp is a Protocol Buffers RPC framework designed for implementing type-safe, distributed microservices communication over HTTP. It functions as a microservices communication framework and API code generator that produces strongly typed client stubs and server interfaces from schema definitions to eliminate manual network boilerplate.

The framework ensures compatibility with existing web infrastructure by executing remote procedure calls over standard HTTP transport. It uses schema-driven contracts as a single source of truth to enable cross-language interoperability and decouple business logic from network transport.

The system covers several core capability areas, including interface-driven routing, multi-format data serialization supporting both JSON and binary, and request lifecycle middleware for cross-cutting concerns. It also provides a standardized error mapping system to translate service failures into machine-readable codes and includes tools for client compatibility verification.

Features

  • Typed RPC Systems - Implements a type-safe RPC system using Protocol Buffers for distributed function invocations over HTTP.
  • Schema-Driven RPC Implementations - Implements remote procedure calls over HTTP using schema-driven contracts for backend communication.
  • API Code Generators - Automates the production of server stubs and client libraries from API interface definitions.
  • Schema-Driven Code Generators - Automatically generates type-safe client stubs and server interfaces from Protobuf schema definitions.
  • Protobuf RPC Frameworks - Offers a complete framework for service communication leveraging Protobuf for interface definition and serialization.
  • HTTP Transports - Executes remote procedure calls over standard HTTP transport to maintain compatibility with existing web infrastructure.
  • Cross-Language Service Communication - Uses a common communication protocol to enable services written in different languages to exchange data.
  • Interface-Based Request Routing - Maps incoming HTTP requests to specific service methods using routing logic derived from API interfaces.
  • Remote Procedure Call Frameworks - Provides a framework for invoking methods on remote services over HTTP as if they were local functions.
  • RPC Frameworks - Offers a complete framework for executing remote procedures across network nodes using optimized transport protocols.
  • Service Communication Libraries - Provides a library that simplifies routing and serialization for request-response inter-service communication.
  • Service Contract Definitions - Uses structured definition files as the single source of truth to enforce consistent API behavior across distributed systems.
  • Protobuf Stub Generators - Generates type-safe client and server stubs from Protocol Buffer interface definitions to eliminate network boilerplate.
  • Service Request Routing - Implements routing strategies that map network calls to service instances based on API definitions.
  • Microservice Frameworks - Provides a framework for building lightweight, production-ready distributed microservices using structured data exchange.
  • Type-Safe Client Generators - Generates type-safe client and server code from API specifications to eliminate manual network boilerplate.
  • Service Action Exposure - Wraps internal service methods and exposes them as standard HTTP endpoints for remote procedure calls.
  • HTTP RPC Transports - Implements an HTTP-based transport layer specifically designed for remote procedure calls.
  • Multi-Format Serializers - Supports both binary and JSON serialization formats for flexible and efficient data exchange between services.
  • Format Selection - Supports both JSON and binary serialization to match client requirements and optimize data exchange.
  • Error Metadata Extensions - Allows attaching custom key-value pairs to API error responses for additional diagnostic context and retry hints.
  • Structured Error Responses - Provides standardized object formats for delivering API errors with consistent identifiers and detail fields.
  • Request Middleware - Implements a sequence of interceptor functions to process requests and responses for cross-cutting concerns.
  • Logic Decoupling - Employs architectural patterns to separate business logic from the underlying HTTP transport layer.
  • Transport-Agnostic Use Cases - Separates business logic from transport-specific details by using generated interfaces that abstract network paths.
  • Machine-Readable Error Codes - Translates service failures and proxy errors into consistent, machine-readable codes for programmatic handling.
  • Structured Error Responses - Sends structured error responses containing both machine-readable codes and human-readable descriptive messages.
  • Service Middleware Pipelines - Provides composable chains of request and response interceptors for managing microservice cross-cutting concerns.
  • Messaging and RPC - A simple RPC framework based on Protocol Buffers.
  • Microservices and RPC - Simple RPC framework using protobuf definitions.
  • RPC Frameworks - Simple RPC framework utilizing protobuf service definitions.

Star history

Star history chart for twitchtv/twirpStar history chart for twitchtv/twirp

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does twitchtv/twirp do?

Twirp is a Protocol Buffers RPC framework designed for implementing type-safe, distributed microservices communication over HTTP. It functions as a microservices communication framework and API code generator that produces strongly typed client stubs and server interfaces from schema definitions to eliminate manual network boilerplate.

What are the main features of twitchtv/twirp?

The main features of twitchtv/twirp are: Typed RPC Systems, Schema-Driven RPC Implementations, API Code Generators, Schema-Driven Code Generators, Protobuf RPC Frameworks, HTTP Transports, Cross-Language Service Communication, Interface-Based Request Routing.

What are some open-source alternatives to twitchtv/twirp?

Open-source alternatives to twitchtv/twirp include: go-kratos/kratos — Kratos is a toolkit for building cloud-native microservices in Go. It provides a comprehensive suite of framework… neuecc/magiconion — MagicOnion is a remote procedure call framework for the .NET platform and Unity. It functions as a binary API protocol… apache/dubbo-spring-boot-project — This project is an integration framework that bootstraps Apache Dubbo remote procedure call services within Spring… apache/dubbo-go — Apache Dubbo Go is a Go language implementation of the Apache Dubbo framework designed for building high-performance… connectrpc/connect-go — Connect-go is a library for building type-safe remote procedure call services that are wire-compatible with gRPC and… smallnest/rpcx — rpcx is a high-performance remote procedure call framework for building scalable microservices in Go. It functions as…

Open-source alternatives to Twirp

Similar open-source projects, ranked by how many features they share with Twirp.
  • go-kratos/kratosgo-kratos avatar

    go-kratos/kratos

    25,743View on GitHub↗

    Kratos is a toolkit for building cloud-native microservices in Go. It provides a comprehensive suite of framework primitives, including a dedicated toolset for API-first development using Protobuf to generate server and client code for gRPC and HTTP. The project is distinguished by its pluggable service infrastructure, which allows for the swapping of configuration stores, service registries, and data encoding formats. It utilizes a composable middleware pipeline to inject cross-cutting concerns such as authentication, request validation, and circuit breaking into the service flow. The frame

    Goaiarchitecturecloud-native
    View on GitHub↗25,743
  • neuecc/magiconionneuecc avatar

    neuecc/MagicOnion

    4,408View on GitHub↗

    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

    C#
    View on GitHub↗4,408
  • apache/dubbo-spring-boot-projectapache avatar

    apache/dubbo-spring-boot-project

    5,389View on GitHub↗

    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

    Javadubbo
    View on GitHub↗5,389
  • apache/dubbo-goapache avatar

    apache/dubbo-go

    4,938View on GitHub↗

    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

    Gogohttp2microservices
    View on GitHub↗4,938
See all 30 alternatives to Twirp→