All Projects → twitchtv → Twirp

twitchtv / Twirp

Licence: other
A simple RPC framework with protobuf service definitions

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Twirp

Netty Learning Example
🥚 Netty实践学习案例,见微知著!带着你的心,跟着教程。我相信你行欧。
Stars: ✭ 2,146 (-60.11%)
Mutual labels:  rpc, protobuf
protobuf-ts
Protobuf and RPC for TypeScript
Stars: ✭ 527 (-90.2%)
Mutual labels:  protobuf, twirp
Gayrpc
Full Duplex C++ RPC Library,Use Protobuf, Support HTTP API .
Stars: ✭ 157 (-97.08%)
Mutual labels:  rpc, protobuf
Mrpc
🐿 netty,zookeeper,spring,kyro rpc framework.
Stars: ✭ 128 (-97.62%)
Mutual labels:  rpc, protobuf
rony
Fast and Scalable RPC Framework
Stars: ✭ 41 (-99.24%)
Mutual labels:  protobuf, rpc
Raptor
拍拍贷微服务rpc框架
Stars: ✭ 139 (-97.42%)
Mutual labels:  rpc, protobuf
elm-protobuf
protobuf plugin for elm
Stars: ✭ 93 (-98.27%)
Mutual labels:  protobuf, rpc
Easyrpc
EasyRpc is a simple, high-performance, easy-to-use RPC framework based on Netty, ZooKeeper and ProtoStuff.
Stars: ✭ 79 (-98.53%)
Mutual labels:  rpc, protobuf
tsrpc
A TypeScript RPC framework, with runtime type checking and serialization, support both HTTP and WebSocket. It is very suitable for website / APP / games, and absolutely comfortable to full-stack TypeScript developers.
Stars: ✭ 866 (-83.9%)
Mutual labels:  protobuf, rpc
twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (-98.18%)
Mutual labels:  protobuf, rpc
Twisk
Golang RPC starter kit with Twirp
Stars: ✭ 113 (-97.9%)
Mutual labels:  rpc, protobuf
Flatbuffers
FlatBuffers: Memory Efficient Serialization Library
Stars: ✭ 17,180 (+219.33%)
Mutual labels:  rpc, protobuf
Twirp
PHP port of Twitch's Twirp RPC framework
Stars: ✭ 108 (-97.99%)
Mutual labels:  rpc, protobuf
Go Micro Boilerplate
The boilerplate of the GoLang application with a clear microservices architecture.
Stars: ✭ 147 (-97.27%)
Mutual labels:  rpc, protobuf
Protobuf
Protocol Buffers - Google's data interchange format
Stars: ✭ 52,305 (+872.21%)
Mutual labels:  rpc, protobuf
Go Grpc Examples
This repo contains examples and implementations of different types of GRPC services and APIs using Golang.
Stars: ✭ 180 (-96.65%)
Mutual labels:  rpc, protobuf
Rpc Thunderdome
A comparison between Proteus RPC and other commonly used RPC frameworks
Stars: ✭ 22 (-99.59%)
Mutual labels:  rpc, protobuf
Grpc
An Elixir implementation of gRPC
Stars: ✭ 858 (-84.05%)
Mutual labels:  rpc, protobuf
cocolian-rpc
使用Apache Thrift作为容器,Google Protobuf作为协议的一个RPC框架。
Stars: ✭ 19 (-99.65%)
Mutual labels:  protobuf, rpc
Yarpc Go
A message passing platform for Go
Stars: ✭ 285 (-94.7%)
Mutual labels:  rpc, protobuf

Twirp Logo Build Status Go Report Card GoDoc


Twirp is a framework for service-to-service communication emphasizing simplicity and minimalism. It generates routing and serialization from API definition files and lets you focus on your application's logic instead of thinking about folderol like HTTP methods and paths and JSON.

Twirp is similar to gRPC, but without the custom HTTP server and transport implementations: it runs on the standard library's extremely-well-tested-and-high-performance net/http Server. It can run on HTTP 1.1, not just http/2, and supports JSON serialization for easy debugging.

Along the way, you get autogenerated clients and a simple, smart framework for passing error messages. Nice!

For more on the motivation behind Twirp (and a comparison to REST APIs and gRPC), the announcement blog post is a good read.

Documentation

Implementations in other languages

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
Python3 github.com/verloop/twirpy
Java github.com/fajran/protoc-gen-twirp_java_jaxrs
Java https://github.com/devork/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
Typescript https://github.com/hopin-team/twirp-ts
Typescript github.com/larrymyers/protoc-gen-twirp_typescript
Typescript github.com/tatethurston/TwirpScript
Ruby github.com/twitchtv/twirp-ruby
Rust github.com/cretz/prost-twirp
Scala github.com/soundcloud/twinagle
Swagger github.com/go-bridget/twirp-swagger-gen
PHP github.com/twirphp/twirp
Dart github.com/apptreesoftware/protoc-gen-twirp_dart
Elixir github.com/keathley/twirp-elixir
Swift github.com/CrazyHulk/protoc-gen-swiftwirp

Support and Community

We have a channel on the Gophers slack, #twirp, which is the best place to get quick answers to your questions. You can join the Gopher slack here.

Releases

Twirp follows semantic versioning through git tags, and uses Github Releases for release notes and upgrade guides: Twirp Releases

Contributing

Check out CONTRIBUTING.md for notes on making contributions.

License

This library is licensed under the Apache 2.0 License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].