liftbridge-io / liftbridge

Lightweight, fault-tolerant message streams.
https://liftbridge.io
Apache License 2.0
2.55k stars 107 forks source link

Help Building GRPC/Ruby Client #32

Open andyl opened 5 years ago

andyl commented 5 years ago

I'm building a simple ruby client to learn Liftbridge and GRPC.

See my WIP at https://github.com/andyl/liftbridge_ruby

I have generated the language bindings using protoc but could use some help figuring out how to use the bindings in an executable ruby script. (lb_client)

Anyone interested in a quick pair-programming session, or to send me a PR?

tylertreat commented 5 years ago

I don't really know Ruby but I'm happy to answer questions or review code. I think it should look something like this (I have not tested):

stub = Proto::API::Stub.new('localhost:44444', :this_channel_is_insecure)
stub.createStream(Proto::CreateStreamRequest.new(subject: 'foo', name: 'foo-stream'))
andyl commented 5 years ago

Good hint - thanks! Was able to make progress - now the client is talking with the liftbridge server. But still not working end-to-end - not pulling messages from liftbridge. Check out the latest version of the client at https://github.com/andyl/liftbridge_ruby/blob/master/lb_client

tylertreat commented 5 years ago

Are you getting any errors? Anything in the server logs? You can get more information from the server logs if you turn debug on: liftbridge --level debug.

andyl commented 5 years ago

@tylertreat thanks for your encouragement I kept poking at it and now it runs end-to-end. :+1:

So we have a working proof-of-concept, but the code is still rough and there are many aspects of the GRPC interface that I don't understand. If anyone wants to work with me to clean this up give me a shout. It would be great to exercise all the API features and have a solid CLI for Liftbridge.