UJRPC

Infrastructure

rpc server

SHOW HN2023

Legend

UJRPC

Faster FastAPI with simdjson and io_uring on Linux 5.19

github.com

#json-rpc#io_uring#simdjson#fastapi alternative#c++ server

290points
90comments
#158of 3,109 in 2023
Top 6%of 2023 by points

How HN took it

CuriousMostly questions and neutral comments

2 positive, 14 neutral or asking, 0 mixed, 5 critical, out of 21 comments about the project. Thread score -0.22.

Performance: 2 for, 3 againstDocs: 0 for, 2 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • simdjson is a strong choice for fast JSON parsing

    From 1 comment
    • simdjson is awesome (Lemire does a lot of great stuff) and io_uring is a good use of circular buffers to get efficient IO, but I always squirm a little when I see JSON in a…
      Genbox on HN
  • Performance claims are impressive relative to FastAPI

    From 1 comment
    • 100x faster than FastAPI seems easy. I wonder how it compares to other fast Python libraries like Japronto[1] and non-Python ones too. 1 - https://github.com/squeaky-pl/japronto
      dom96 on HN

Objections

  • Python work in handlers would bottleneck the speedup

    From 1 comment
    • The net performance of your system is only as fast as the slowest part. So, you optimized your C IO loop and it's really fast when there is not much Python...but soon as you add…
      tarasglek on HN
  • JSON is a poor format for high-performance or tabular data

    From 2 comments
    • I was just thinking how lousy a data format JSON is for tabular data. Would sending it down in CSV improve things at all?
      pbreit on HN
    • simdjson is awesome (Lemire does a lot of great stuff) and io_uring is a good use of circular buffers to get efficient IO, but I always squirm a little when I see JSON in a…
      Genbox on HN
  • Project is pre-production and lacks docs

    From 1 comment
    • https://www.unum.cloud/ujrpc Is this supposed to be just a blank page, which is what I see?
      anentropic on HN

Requests

  • Documentation portal

    From 1 comment
    • https://www.unum.cloud/ujrpc Is this supposed to be just a blank page, which is what I see?
      anentropic on HN

Questions

  • Whether protobuf or Arrow would be better for transport

    From 2 comments
    • I'm curious if json + simdjson will outperform protobuf. I'm picking a protocol for my project. I was looking at protobuf, but this post made me think otherwise.
      billconan on HN
    • If anything you'd probably want to send it in Arrow[1] format. CSV's don't even preserve data types. [1]: https://arrow.apache.org/
      ZeroCool2u on HN
  • How simdjson handles instruction sets at deploy time

    From 1 comment
    • Though I have read a bit about simdjson I'm not super familiar with how it works, so please forgive me if this is a silly question. Since simdjson is where a lot of the…
      ZeroCool2u on HN

Alternatives named

  • gRPC

    From 1 comment
    • I'm curious if json + simdjson will outperform protobuf. I'm picking a protocol for my project. I was looking at protobuf, but this post made me think otherwise.
      billconan on HN
  • yyjson

    From 1 comment
    • How does yyjson[0] compare to simdjson? Their benchmarks suggest it could be a positive. [0] https://github.com/ibireme/yyjson
      Dachande663 on HN
  • Japronto

    From 1 comment
    • 100x faster than FastAPI seems easy. I wonder how it compares to other fast Python libraries like Japronto[1] and non-Python ones too. 1 - https://github.com/squeaky-pl/japronto
      dom96 on HN
  • Apache Arrow

    From 1 comment
    • If anything you'd probably want to send it in Arrow[1] format. CSV's don't even preserve data types. [1]: https://arrow.apache.org/
      ZeroCool2u on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/35042316)