storj/drpc is an open source project licensed under MIT License which is an OSI approved license.
Similar projects and alternatives to drpc based on common topics and language
A simple RPC framework with protobuf service definitions
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Scout APM - Leading-edge performance monitoring starting at $39/month. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
The Go language implementation of gRPC. HTTP/2 based RPC
Go Micro is a framework for distributed systems development
Go Micro is a framework for distributed systems development [Moved to: https://github.com/asim/go-micro] (by micro)
Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! 𝐉𝐚𝐯𝐚有𝐝𝐮𝐛𝐛𝐨, 𝐆𝐨𝐥𝐚𝐧𝐠有𝐫𝐩𝐜𝐱!
Go Server/API boilerplate using best practices DDD CQRS ES gRPC
Run Linux Software Faster and Safer than Linux with Unikernels.
Introducing DRPC: The Storj Replacement for gRPC
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.
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
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.
Seems like it can also serve a http/json api. Neat!
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.
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
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