FFI(Foreign Function Interface)の型変換のオーバーヘッド RustとPythonを連携させるとき、悩ましい問題がデータの受け渡しです。 # ユーザは様々な形式でデータを渡してくる import numpy as np import pandas as pd # 素数判定をRustで高速化したい primes = rust_lib.is_prime_batch(np.array([2, 3, 4, 5, 6])) # NumPy primes = rust_lib.is_prime_batch([2, 3, 4, 5, 6]) # Python list primes = rust_lib.is_prime_batch(pd.Series([2, 3, 4, 5, 6])) # Pandas // 従来のPyO3での実装: 型変換地獄 #[pyfunction]
