{ stdenv, lib, buildPythonPackage, cargo, fetchPypi, pytestCheckHook, rustc, rustPlatform, libiconv, }: buildPythonPackage rec { pname = "rpds-py"; version = "0.24.0"; pyproject = true; src = fetchPypi { pname = "rpds_py"; inherit version; hash = "sha256-dyzBss2WPn4X5sxV/gNx+5xwTWPkTKzse5t/Ujt4kZ4="; }; cargoDeps = rustPlatform.fetchCargoVendor { inherit src; name = "${pname}-${version}"; hash = "sha256-AHmnDTHuoB9wHH4CH20C+hFi9WaQBoUNMIvTIZlajVw="; }; nativeBuildInputs = [ rustPlatform.cargoSetupHook rustPlatform.maturinBuildHook cargo rustc ]; buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ]; nativeCheckInputs = [ pytestCheckHook ]; pythonImportsCheck = [ "rpds" ]; meta = with lib; { changelog = "https://github.com/crate-py/rpds/releases/tag/v${version}"; description = "Python bindings to Rust's persistent data structures"; homepage = "https://github.com/crate-py/rpds"; license = licenses.mit; maintainers = with maintainers; [ fab ]; }; }