Two Iceberg Clients, One Protocol: Where the Time Goes
This article provides a step by step comparison of the Rust and Python clients for Apache Iceberg REST catalogs. It times both clients on the same operations against the same tables, then breaks one request down to see where the time goes. https://github.com/xbill9/lakehouse-iceberg-2026 What is this project trying to Do? Two Apache clients talk to the same catalogs: iceberg-catalog-rest 0.10.1 ,…
This article compares the performance of Apache Iceberg REST catalog clients in Rust and Python. Both clients, iceberg-catalog-rest (Rust) and pyiceberg (Python), were benchmarked against three catalogs: Apache Polaris, Google BigLake, and Microsoft OneLake. The Rust client supports 13 out of 25 catalog endpoints, while pyiceberg supports 21.
The study measures the time taken for each call, client startup time, and where the time in one call is spent. The Rust client was found to be 1.90x to 4.29x faster on four small calls and 1.14x to 1.38x on two table calls compared to pyiceberg. The majority of the time difference between the two clients is attributed to the HTTP library used, with the Rust client's HTTP library (reqwest) being 85% to 90% faster than Python's (requests) in handling the raw HTTP request.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.