{"repo":"tsloughter/grpcbox","free":true,"listed":false,"github":"https://github.com/tsloughter/grpcbox","clone":"git clone https://github.com/tsloughter/grpcbox.git","description":"Erlang grpc on chatterbox","language":"Erlang","stars":147,"topics":["grpc","grpc-server","erlang"],"license":"Apache-2.0","category":"networking-infra","readme_excerpt":"grpcbox ===== Library for creating grpc services (client and server) in Erlang, based on the chatterbox http2 library. Features --- Unary, client stream, server stream and bidirectional rpcs Client load balancing Interceptors Health check service Reflection service OpenCensus interceptors for stats and tracing Plugin for generating clients and behaviour type specs for service server implementation Implementing a Service Server ---- The quickest way to play around is with the test service and client that is used by grpcbox . Simply pull up a shell with, rebar3 as test shell and the route guide service will start on port 8080 and you'll have the client, routeguide route guide client , in the path. The easiest way to get started on your own project is using the plugin, grpcbox plugin: Currently grpcbox and the plugin are a bit picky and the gpb options will always include [use packages, maps, {i, \".\"}, {o, \"src\"}] . Assuming the protos directory of your application has the route guide.proto found in this repo, protos/route guide.proto , the output from running the plugin will be: A behaviour is used because it provides a way to generate the interface and types without being where the actual implementation is also done. This way if a change happens to the proto you can regenerate the interface without any issues with the implementation of the service, simply then update the implementation callbacks to match the changed interface. Runtime configuration for grpcbox can be done in s","default_branch":null,"files":null,"tree":[],"storefront":"/r/tsloughter","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tsloughter/grpcbox/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}