specta-rs
Rust crates for building better web apps
With specta-rs we are setting out to build an ecosystem of crates which enable developers to build better web apps with Rust. We are doing this by building libraries with a focus on:
Typesafety: types should always be inferred end-to-end, allowing you to move quickly and collaborate while maintaining confidence that your code is correct.
Developer experience: obsessed with simplicity, while maintaining flexibility. We build tools that make doing the "right thing" the "easy thing", freeing you up to focus on the things that matter.
Modern practices: embrace the world of modern JavaScript tooling, enabling you to ship better user experiences than server-driven approaches.
Scale: build codebases that scale sanely, both in performance and maintainability. Take advantage of Rust's compile-time checks and tooling to reduce risk when developing large-scale applications.
Projects
Currently specta-rs contains the following projects:
Specta
Export your Rust types to any language. The foundation for type-safe communication across your stack.
rspc
A blazingly fast and typesafe RPC framework for Rust. Build web APIs with end-to-end type safety.

Tauri Specta
Typesafe Tauri commands with Specta. Build desktop apps with full type safety between Rust and TypeScript.
Production users
TODO:
- Spacedrive
- CrabNebula Cloud
- Twidge
- Reader
Sponsors
Want to sponsor Specta? Become a sponsor on GitHub to help support the project's development.
Why Choose Rust?
We are focused on building tooling in Rust but it is not always the right choice for your project. Rust has a lot of advantages such as it's strong type system, tooling, high-performance, and memory safety which leads to fewer runtime bugs and makes refactoring and maintaining code easier.
The right choice often depends on your situation:
- Server-side rendered UI frameworks often necessitate part or most of your backend to be in Javascript.
- Libraries like Effect can bring Rust-like benefits without changing languages.
- Go has a lower learning curve and great standard library but has weaker error handling and type-checking guarantees resulting in more unreliable codebases.
Rust is the right choice if:
- Your team has Rust expertise
- Your building a microservice, your frontend is an SPA or your embedding your API into a native application (Eg. Tauri)
- Your API needs to do heavy data processing, simulations or work where performance is critical.
- Your API needs to do processing where reliability and security are critical (Eg. banking, healthcare)
Last updated on
