A high-performance JSON-RPC and REST library for Python and C, leveraging io_uring and SIMD for ultra-low latency and high throughput.
UCall is a remote procedure call library that implements JSON-RPC and REST over TCP/HTTP with a focus on extreme performance. It solves the problem of high latency and low throughput in traditional web serving libraries by leveraging Linux io_uring and SIMD-accelerated parsers, making it ideal for high-demand microservices and AI applications.
Developers building high-performance microservices, real-time AI inference pipelines, or any system where low-latency RPC is critical, especially those deploying on Linux with kernel 5.19+.
Developers choose UCall for its unmatched performance—up to 100x faster than FastAPI—and its ability to handle custom data types like NumPy arrays natively, all while maintaining a simple API comparable to mainstream frameworks.
Web Serving and Remote Procedure Calls at 50x lower latency and 70x higher bandwidth than FastAPI, implementing JSON-RPC & REST over io_uring ☎️
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Leverages io_uring and SIMD parsers to achieve round-trip times as low as 22 microseconds, significantly outperforming FastAPI and gRPC in benchmarks.
Handles up to 231,000 requests per second on supported hardware, making it ideal for high-demand microservices and AI inference pipelines.
Natively supports custom types like NumPy arrays and PIL images, facilitating efficient data handling for multi-modal AI applications, as shown in the UForm integration example.
Delivers high performance on free-tier cloud instances like AWS t4g.small, with throughput up to 88,455 RPS, reducing operational costs.
Optimal performance requires Linux kernel 5.19+ for io_uring features, excluding Windows, macOS, and older Linux systems, limiting cross-platform use.
Critical features like HTTPS support and WebSockets are still on the roadmap, not yet available, which may hinder adoption in secure or real-time web environments.
The C interface requires manual argument extraction with functions like ucall_param_named_i64, making it less ergonomic and more error-prone compared to higher-level libraries.
UCall is an open-source alternative to the following products: