- Notifications
You must be signed in to change notification settings - Fork327
A simple RPC framework with protobuf service definitions
License
twitchtv/twirp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Twirp is a framework for service-to-service communication emphasizing simplicityand minimalism. It generates routing and serialization from API definition filesand lets you focus on your application's logic instead of thinking aboutfolderol like HTTP methods and paths and JSON.
Twirp is similar togRPC, but without the customHTTP server and transport implementations: it runs on the standard library'sextremely-well-tested-and-high-performancenet/http
Server. It can run on HTTP1.1, not just http/2, and supports JSON serialization for easy debugging.
Along the way, you get autogenerated clients and a simple, smart framework forpassing error messages. Nice!
Read more about the motivation behind on theannouncement blog post.
This repo contains the generator and runtime library for the Go implementation.
Here is a list of some third-party implementations in other languages.
Language | Clients | Servers | Repository |
---|---|---|---|
Crystal | ✓ | ✓ | github.com/mloughran/twirp.cr |
Dart | ✓ | github.com/apptreesoftware/protoc-gen-twirp_dart | |
Elixir | ✓ | ✓ | github.com/keathley/twirp-elixir |
Java | ✓ | ✓ | github.com/fajran/protoc-gen-twirp_java_jaxrs |
Java | ✓ | github.com/devork/flit | |
Java | ✓ | github.com/github/flit | |
JavaScript | ✓ | github.com/thechriswalker/protoc-gen-twirp_js | |
JavaScript | ✓ | github.com/Xe/twirp-codegens/cmd/protoc-gen-twirp_jsbrowser | |
JavaScript | ✓ | ✓ | github.com/tatethurston/TwirpScript |
Kotlin | ✓ | github.com/collectiveidea/twirp-kmm | |
PHP | ✓ | ✓ | github.com/twirphp/twirp |
Python3 | ✓ | ✓ | github.com/verloop/twirpy |
Ruby | ✓ | ✓ | github.com/twitchtv/twirp-ruby |
Rust | ✓ | ✓ | github.com/sourcefrog/prost-twirp |
Scala | ✓ | ✓ | github.com/soundcloud/twinagle |
Swagger | ✓ | ✓ | github.com/go-bridget/twirp-swagger-gen |
Swift | ✓ | github.com/CrazyHulk/protoc-gen-swiftwirp | |
Typescript | ✓ | ✓ | github.com/hopin-team/twirp-ts |
Typescript | ✓ | ✓ | github.com/tatethurston/TwirpScript |
Typescript | ✓ | ✓ | github.com/timostamm/protobuf-ts |
We have a channel on the Gophers slack,#twirp,which is the best place to get quick answers to your questions. You can join theGopher slackhere.
Twirp follows semantic versioning through git tags, and uses GitHub Releases forrelease notes and upgrade guides:Twirp Releases
Check outCONTRIBUTING.md for notes on making contributions.
This library is licensed under the Apache 2.0 License.
About
A simple RPC framework with protobuf service definitions