zenoh-python
zenoh-python copied to clipboard
Use non-abi3 wheels
Describe the feature
Currently, Zenoh Python API is built using the PyO3 abi37
features, which means it uses the stable ABI of Python 3.7.
It allows supporting all Python versions with only one wheel. On the other hand, it restrains a lot the set of features available – a lot of features are already available in CPython several versions before the stabilization in the ABI.
For example, it's not possible for now to read a &str
from a PyString
using ABI. Also, Python buffer protocol is not available, and we cannot built custom exception, enclosing the Rust exception instead of converting it to a string.
Not using stable would allow using these features. It's possible to build one wheel for each Python version, there are many examples available https://github.com/PyO3/maturin-action?tab=readme-ov-file#examples.