Hi Michael, Thanks for your insightful suggestions, here are my thoughts.
1. Minimum Python Version: Good point. Let’s support Python >= 3.9, which aligns with the Flink Python client, and also eliminates any EOL concerns for 3.7. 2. Tools(uv, ruff, and mypy): Nice suggestion! As for now, in the first version of Python client, I think there will be basically no hand-written Python to lint, except for a few simple examples. However, I think these tools are great, and we can introduce them later on. Best, Jim > 2025年8月17日 22:03,Michael Koepf <[email protected]> 写道: > > Hi Jim, > > Thank you for bringing Fluss to the Python ecosystem! > > Since this is the first Python project within Fluss, a few (late) questions > from my side around project setup and ecosystem which have not been addressed > yet. > > - What is the minimum Python version that will be supported? In the PoC it > seems to be 3.7 [1]. However, Python 3.7 is already end-of-life [2]. Maybe we > should opt for 3.9, similar to the Flink Python client [3], to keep potential > maintenance overhead low? > > - What do you think about using uv [4] for package and project management? It > is compatible with the maturin build backend and offers integration with > tools for linting and static type checking. > > - I am not sure how much non-generated Python code there will be in the first > version (maybe it's even just generated code from PyO3?). But what tools do > you plan to use for linting and static type checking? Personally, I would > prefer ruff [5] and mypy [6], but people might have different opinions. > > Thank you. > > -- > Best, > MKO > > [1] > https://github.com/naivedogger/Fluss-Python-Client/blob/4a93bcd3c57db1c3ea7022e10106df73c3aff1fd/python-bindings/pyproject.toml#L10 > [2] https://devguide.python.org/versions/ > [3] > https://nightlies.apache.org/flink/flink-docs-master/docs/dev/python/datastream_tutorial/ > [4] https://docs.astral.sh/uv/ > [5] https://docs.astral.sh/ruff/ > [6] https://mypy-lang.org/ > > On 2025/08/08 12:01:43 Jim Hu wrote: >> Hi Fluss community, >> I’d like to kick off the public discussion on FIP-11¹, which proposes a >> thin PyO3 wrapper around the existing Rust client so that Python users can >> read/write Fluss without spinning up a JVM. >> >> - Goal: Java-SDK parity (streaming & batch reads/writes, DDL, point >> queries) but 100 % Pythonic. >> - Implementation: PyO3 bridge compiled to a native .so/.pyd; zero-copy, >> lock-free, no sockets, no JVM start-up cost. >> - Repository: fluss-rust/bindings/python. >> >> I’ve prototyped a minimal PoC at naivedogger/Fluss-Python-Client at >> python-client >> <https://github.com/naivedogger/Fluss-Python-Client/tree/python-client> >> Looking forward to your thoughts. >> Best regards, >> Jim >> [1] >> https://cwiki.apache.org/confluence/display/FLUSS/FIP-11%3A+Fluss+Python+binding+on+Fluss+Rust
