Currently, borsh serialization is implemented by hand for the client.
Using something like crus, flutter_rust_bridge or rid could make it pretty easy to reimplement the "repo" part of the client codebase in Rust and leverage a serialization crate shared by the client and server.
Explore that!