-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Description
I'm relatively new to Rust so bear with me. I'm working on a project that provides a Python API to Rust code via Pyo3. In my project I'm trying to enable fast serialization and deserialization using bincode
. I read this crate can mitigate the performance issues I'm seeing (bincode
takes 3 times longer than serialization/deserialization with serde_json
).
It's not clear to me how to take advantage of this crate when I don't use a struct field to hold the data.
For reference, this is what the unedited, actual serialization and deserialization code snippet looks like, with the Pyo3 API intact:
pub fn to_bincode(&self) -> PyResult<Vec<u8>> {
Ok(serialize(&self).unwrap())
}
#[classmethod]
pub fn from_bincode(_cls: &PyType, encoded: Vec<u8>) -> PyResult<Self> {
Ok(deserialize(&encoded).unwrap())
}
With the API removed, I suppose would be the analogous code:
pub fn to_bincode(&self) -> Vec<u8> {
serialize(&self).unwrap()
}
pub fn from_bincode(encoded: Vec<u8>) -> Self {
deserialize(&encoded).unwrap()
}
See also: PyO3/pyo3#100
How can I utilize this crate in this case?
Metadata
Metadata
Assignees
Labels
No labels