unum-cloud / ucall

Web Serving and Remote Procedure Calls at 50x lower latency and 70x higher bandwidth than FastAPI, implementing JSON-RPC & REST over io_uring ☎️
https://unum-cloud.github.io/ucall/
Apache License 2.0
1.13k stars 42 forks source link

Feature: Add a C++ client version in the examples #21

Open ArashPartow opened 1 year ago

ArashPartow commented 1 year ago

Describe what you are looking for

Feature: Add a C++ client version in the examples

Can you contribute to the implementation?

Is your feature request specific to a certain interface?

It applies to everything

Contact Details

No response

Is there an existing issue for this?

Code of Conduct

ashvardanian commented 1 year ago

That’s a good one! We wanted to implement one ourselves, but were not sure how to approach it.

Clients generally don’t have to be as efficient as the server code, cause they are not expected to maintain too many simultaneous connections. You can use cURL from command line or any other basic web library in any language for that.

If we were to implement an client in C/C++, we would prefer it to be as efficient as the server, and would need io-uring + compile time reflection, rather than io-uring + simd parsing. Which implies different constraints and can be a great future project if C++26 comes out with native reflection support.

ArashPartow commented 1 year ago

That would be a great approach, but perhaps for a first pass, I would propose something as simple as the python/go example - basically demoing the greatest amount of functionality, in the least yet most concise number of SLOC

ashvardanian commented 1 year ago

@ArashPartow, hey! I somehow missed this. Don't hesitate to tag me the next time 🤗

I ma not sure if a C++ example would be as helpful as C 99, but adding either should be easy. @ishkhan, can you add a short snippet to the main page README? We can polish it together for the 1.0 release.