4 releases (breaking)

0.4.0 Oct 10, 2024
0.3.0 Sep 19, 2024
0.2.0 Jul 3, 2024
0.1.0 May 7, 2024

#383 in Network programming

Download history 588/week @ 2024-08-20 431/week @ 2024-08-27 493/week @ 2024-09-03 391/week @ 2024-09-10 676/week @ 2024-09-17 796/week @ 2024-09-24 145/week @ 2024-10-01 825/week @ 2024-10-08 820/week @ 2024-10-15 556/week @ 2024-10-22 584/week @ 2024-10-29 391/week @ 2024-11-05 413/week @ 2024-11-12 744/week @ 2024-11-19 531/week @ 2024-11-26 427/week @ 2024-12-03

2,171 downloads per month

Apache-2.0

125KB
2.5K SLoC

Java 1.5K SLoC // 0.2% comments Python 792 SLoC // 0.2% comments Rust 158 SLoC // 0.2% comments

Remote UDF based on Arrow Flight

Crate Docs

Run user-defined functions in a separate process and call them via Arrow Flight RPC.

Server

Currently the following languages are supported:

Please click the link to see the specific usage.

Client

Add the following lines to your Cargo.toml:

[dependencies]
arrow-udf-flight = "0.2"
use arrow_udf_flight::Client;

// Connect to the UDF server
let client = Client::new("localhost:8815").await.unwrap();

// Call functions
let input: RecordBatch = ...;
let output: RecordBatch = client.call("gcd", &input).await.unwrap();

Communication Protocol

The communication protocol between client and server is based on Arrow Flight RPC.

Details to be added.

Dependencies

~14–22MB
~306K SLoC