nmezhenskyi / rcs

Remote Caching Server is a versatile key-value data store accessible through Native, gRPC, and HTTP APIs.
MIT License
13 stars 0 forks source link

Add Examples #8

Open nmezhenskyi opened 1 year ago

nmezhenskyi commented 1 year ago

Need to add examples of interfacing with HTTP, gRPC, and Native APIs. Ideally in several languages.

pierater commented 1 year ago

@nmezhenskyi I think your Golang RCS has some good promises and I'd love to help contribute. I have some enterprise experience building distributed buffers/caches in Java and have been learning Go for a recent new role.

I took a look through the codebase and have a few questions, specifically around usage (which is also why I'm asking this in the "Add Examples" issue).

I'm down to take a jab at an example. Maybe you can nitpick it and help guide me in the right direction of how you expect it to be used also?

nmezhenskyi commented 1 year ago

Hey @pierater! I'm glad you've found the project interesting and your contributions are welcome!

To answer your questions:

Regarding the examples, I wanted to show how one can interact with RCS using its various APIs. So basically examples would be the client-side code.

The easiest example would be to communicate using HTTP API. The gRPC one would be a little trickier, the client would first need to compile the protobuf definitions to its language. And the Native API would be the hardest one since it'd require writing the whole client library to serialize & parse messages.

Examples are welcome in any language really. Go examples could probably reuse a lot of the existing server code.

Here's the directory structure I had in mind:

In the future, it'd probably make sense to move the examples into a separate repository. But right now the project is quite small and it just needs something to prove that it actually works haha :)

So if you're interested in adding some examples, feel free to do so! Also, if you have any other questions, suggestions, or advice regarding RCS in general, I'd be happy to discuss!