Giter Site home page Giter Site logo

mbarbin / eio-rpc Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 997 KB

A collection of opinionated libraries designed to build RPC clients and servers with eio

Home Page: https://mbarbin.github.io/eio-rpc/

License: MIT License

Makefile 0.59% OCaml 99.41%
eio grpc ocaml protocol-buffers rpc

eio-rpc's People

Contributors

mbarbin avatar

Watchers

 avatar

Forkers

art-w

eio-rpc's Issues

Add tests

I was considering two kind of tests to add:

  • A end-to-end test that involves running a server and showing a sequence of cli invocation with expectations (expect test).
  • A test that connects a client directly with a server running as part of the same process, connecting the handler directly without going through the wire.

TBD.

Issue with `keyval delete` Command Hanging Upon Successful Deletion

I've encountered an issue where the keyval delete command hangs when it successfully deletes a binding.

Assuming a server is running:

$ keyval server run

Here are the steps to reproduce the problem:

$ keyval -- list-keys
()                                    
$ keyval -- set --key a --value Hello
$ keyval -- delete --key b
("Key not found" ((key b)))           
$ keyval -- delete --key a
<hangs>
^C                      

This issue seems to occur only when a binding is actually deleted. If the command is run with a key that doesn't exist, it doesn't hang.

Interestingly, this is the first time I'm using an empty protobuf message with this library (encoding for the type unit returned by the delete rpc in the successful case). Because the behavior depends on the value being returned, I'm considering the possibility that the issue might involve the serialization phase. To be investigated.

Add streaming tests

The current focus in the tests is on unary RPCs. I plan on looking at streaming RPCs next.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.