1{ lib
2, stdenv
3, buildPythonPackage
4, fetchFromGitHub
5, rustPlatform
6, setuptools-rust
7, openssl
8, pkg-config
9, cyrus_sasl
10, protobuf
11, cmake
12, gcc
13, confluent-kafka
14, pytestCheckHook
15, pythonAtLeast
16}:
17
18buildPythonPackage rec {
19 pname = "bytewax";
20 version = "0.16.0";
21 format = "pyproject";
22
23 disabled = pythonAtLeast "3.11";
24
25 src = fetchFromGitHub {
26 owner = "bytewax";
27 repo = pname;
28 rev = "v${version}";
29 hash = "sha256-XdFkFhN8Z15Zw5HZ2wmnNFoTzyRtIbB7TAtOpKwuKyY=";
30 };
31
32 # Remove docs tests, myst-docutils in nixpkgs is not compatible with package requirements.
33 # Package uses old version.
34 patches = [ ./remove-docs-test.patch ];
35
36 cargoDeps = rustPlatform.fetchCargoTarball {
37 inherit src;
38 hash = "sha256-XGE1qPHi13/+8jjNCIgfzPudw561T0vUfJv5xnKySAg=";
39 };
40
41 nativeBuildInputs = [
42 cmake
43 pkg-config
44 rustPlatform.maturinBuildHook
45 rustPlatform.cargoSetupHook
46 ];
47
48 dontUseCmakeConfigure = true;
49
50 buildInputs = [
51 openssl
52 cyrus_sasl
53 protobuf
54 ];
55
56 preCheck = ''
57 export PY_IGNORE_IMPORTMISMATCH=1
58 '';
59
60 checkInputs = [
61 pytestCheckHook
62 confluent-kafka
63 ];
64
65 meta = with lib; {
66 description = "Python Stream Processing";
67 homepage = "https://github.com/bytewax/bytewax";
68 license = licenses.asl20;
69 maintainers = with maintainers; [ mslingsby kfollesdal ];
70 # mismatched type expected u8, found i8
71 broken = stdenv.isAarch64;
72 };
73}