1 unstable release
0.1.0-beta.1 | Nov 1, 2024 |
---|
#579 in Network programming
260 downloads per month
66KB
1.5K
SLoC
pyo3-object_store
Integration between object_store
and pyo3
.
This provides Python builder classes so that Python users can easily create Arc<dyn ObjectStore>
instances, which can then be used in pure-Rust code.
Usage
-
Register the builders.
#[pymodule] fn python_module(py: Python, m: &Bound<PyModule>) -> PyResult<()> { pyo3_object_store::register_store_module(py, m, "python_module")?; pyo3_object_store::register_exceptions_module(py, m, "python_module")?; }
This exports the underlying Python classes from your own Rust-Python library.
-
Accept
PyObjectStore
as a parameter in your function exported to Python. Itsinto_inner
method gives you anArc<dyn ObjectStore>
.#[pyfunction] pub fn use_object_store(store: PyObjectStore) { let store: Arc<dyn ObjectStore> = store.into_inner(); }
Example
The obstore
Python library gives a full real-world example of using pyo3-object_store
. It
ABI stability
Note about not being able to use these across Python packages. It has to be used with the exported classes from your own library.
Type hints
Dependencies
~12–21MB
~300K SLoC