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.15k stars 43 forks source link

Feature: FastAPI call-compatible replacement #74

Closed rswgnu closed 1 year ago

rswgnu commented 1 year ago

Describe what you are looking for

I am a bit confused by your comparison to FastAPI. FastAPI can rapidly build REST APIs atop relational databases, with a flexible middleware component for customizing responses. Does your system do anything like this? Why compare the two if you can't quickly replace FastAPI with your system, i.e. you would have to rewrite a great deal of code. If you can replace it, please explain a bit.

From the existing README, it seems like you are focused only on lower-level protocol replacement for increased speed using JSON-RPC but then the comparison between the systems doesn't make much sense to me.

Can you contribute to the implementation?

Is your feature request specific to a certain interface?

It applies to everything

Contact Details

rswgnu@github.com

Is there an existing issue for this?

Code of Conduct

ashvardanian commented 1 year ago

Hey, @rswgnu!

Yes, you are right. FastAPI focuses on REST over HTTP and TCP, while UCall implements JSON-RPC and can work with and without the HTTP layer. The reason we compare them is due to similar functionality and primary interface. Both use Python decorators to define RPC endpoints.

The performance wins in UCall come from something other than choosing JSON-RPC over REST. They come from Linux kernel bypass tricks and reduced memory allocations. Those numbers would still hold for the REST implementation, which is being added by @ishkhan42 as I type this 😄

The release is scheduled for August and will also bring out-of-the-box TLS support, which will make it easier than ever to build High-Performance web servers for micro-deployments, like AWS Lambdas, where putting an NGINX in front of your microservice can be too much of a hassle... and added latency. So stay tuned 🤗

rswgnu commented 1 year ago

Sounds good.  Look forward to it.  Your whole ecosystem sounds quite exciting.  Keep at it. On Aug 1, 2023, at 2:41 AM, Ash Vardanian @.***> wrote: Hey, @rswgnu! Yes, you are right. FastAPI focuses on REST over HTTP and TCP, while UCall implements JSON-RPC and can work with and without the HTTP layer. The reason we compare them is due to similar functionality and primary interface. Both use Python decorators to define RPC endpoints. The performance wins in UCall come from something other than choosing JSON-RPC over REST. They come from Linux kernel bypass tricks and reduced memory allocations. Those numbers would still hold for the REST implementation, which is being added by @ishkhan42 as I type this 😄 The release is scheduled for August and will also bring out-of-the-box TLS support, which will make it easier than ever to build High-Performance web servers for micro-deployments, like AWS Lambdas, where putting an NGINX in front of your microservice can be too much of a hassle... and added latency. So stay tuned 🤗

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>