We mostly use react-router (or remix for older things that haven't been upgraded yet).
So the way that it works is, you define your api in dropshot. You ask it to generate an openapi document. You run this on that document to get a typescript client. And then you use that client in your react-router application.
I'm personally using it in the "framework" mode, so I have a "backend for frontend" going on, but the main appliccation is using it purely on the client, served from the same server as that API. Both have pros and cons.
https://serde.rs/ is the serialization/deserialization framework in Rust, and is well supported in the ecosystem.
We also wrote https://github.com/oxidecomputer/oxide.ts to generate TypeScript clients from the OpenAPI.
We mostly use react-router (or remix for older things that haven't been upgraded yet).
So the way that it works is, you define your api in dropshot. You ask it to generate an openapi document. You run this on that document to get a typescript client. And then you use that client in your react-router application.
I'm personally using it in the "framework" mode, so I have a "backend for frontend" going on, but the main appliccation is using it purely on the client, served from the same server as that API. Both have pros and cons.