twirp VS drpc

Compare twirp vs drpc and see what are their differences.

twirp

A simple RPC framework with protobuf service definitions (by twitchtv)

drpc

drpc is a lightweight, drop-in replacement for gRPC (by storj)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
twirp drpc
30 9
6,778 1,423
0.6% 1.4%
3.0 4.9
5 days ago 15 days ago
Go Go
Apache License 2.0 MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

twirp

Posts with mentions or reviews of twirp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-26.

drpc

Posts with mentions or reviews of drpc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-09.
  • Experience report: Converting from Google gRPC to Buf's Connect RPC (with gRPC compatibility)
    5 projects | /r/golang | 9 Jun 2022
    i had try drpc https://github.com/storj/drpc , it's good for my project, but , connect-go https://github.com/bufbuild/connect-go is better, for me, maybe is best one.
  • Cap'n Proto 0.9
    6 projects | news.ycombinator.com | 14 Aug 2021
    > But I do long for a simpler alternative

    If you're happy with protobuf but just not with gRPC, you can check out Twirp [1] and DRPC [2]. Both aim to be simpler alternatives while keeping protobuf for serialization. Their development is Go focused though.

    [1] https://github.com/twitchtv/twirp

    [2] https://github.com/storj/drpc/

  • Introducing DRPC: The Storj Replacement for gRPC
    9 projects | /r/golang | 27 Apr 2021
    As long as you only need non-streaming RPCs, you don't need a gateway because the type you register your services with comes with a ServeHTTP method. Additionally, you can use the drpcmigrate package to serve both the built in wire format as well as that http server on the same port, as demonstrated in this example.
    9 projects | /r/golang | 27 Apr 2021
    Here's an example of our HTTP+JSON gateway, if that sufficiently scratches that itch: https://github.com/storj/drpc/tree/main/examples/drpc_and_http
    9 projects | /r/golang | 27 Apr 2021
    It does not. It has its own wire format designed to be simple to parse and implement (https://pkg.go.dev/storj.io/[email protected]/drpcwire). But, because it was designed to be extensible and open to introspection, there is a package that allows you to serve the same service over HTTP (https://github.com/storj/drpc/blob/main/drpcmux/serve_http.go) but that's not required at all.
    9 projects | /r/golang | 27 Apr 2021
    Seems like it can also serve a http/json api. Neat!
    9 projects | /r/golang | 27 Apr 2021
    Someone opened an issue talking about adding websocket support. Since it seems fairly easy to add, I'll probably write an external package to do it so that DRPC's dependencies don't grow.
    9 projects | /r/golang | 27 Apr 2021
    That said, if you only care about unitary requests over http, there's an example that exposes a server that responds to both the wire format as well as http requests on the same port here: https://github.com/storj/drpc/tree/main/examples/drpc_and_http
    9 projects | /r/golang | 27 Apr 2021
    We actually do use gogoproto internally. The code generator has a `protolib` option that knows about gogo, or lets you implement your own marshal/unmarshal calls: https://github.com/storj/drpc/blob/main/internal/integration/doc.go#L8

What are some alternatives?

When comparing twirp and drpc you can also consider the following projects:

grpc-go - The Go language implementation of gRPC. HTTP/2 based RPC

grpc-web - gRPC Web implementation for Golang and TypeScript

prisma-client-go - Prisma Client Go is an auto-generated and fully type-safe database client

swagger-petstore - swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.

protobuf-ts - Protobuf and RPC for TypeScript

Protobuf - Protocol Buffers - Google's data interchange format

gRPC - The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)

chi - lightweight, idiomatic and composable router for building Go HTTP services

protoactor-go - Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin

client_golang - Prometheus instrumentation library for Go applications

capnproto-dotnetcore - A Cap'n Proto implementation for .NET Standard and .NET Core

otpauth - Google Authenticator migration decoder