This is a full example of how to set up a fullstack application where validation is done using protovalidate annotations, enforced by protocheck on the backend and protovalidate-es on the frontend.
The backend consists of a server that uses Tonic to listen for grpc requests (with a grpc-web
layer provided by Tonic-web), while using Axum to serve normal http REST endpoints.
protocheck is used to validate incoming grpc requests.
The frontend consists of a very simple Sveltekit app that uses protovalidate-es to validate outgoing messages and connect-es to send them via grpc-web
to the backend.
It also uses Tanstack Form to provide responsive feedback from validation errors.
cargo run
to start the serverpnpm install
pnpm run dev
to start the client