Perseus is a high-level web development framework for Rust, with full support for SSG and SSR. It's based on Sycamore (a VDOM-less reactivity system for Rust) and adds higher-level functionality, including an Actix Web integration and even a CLI to make development easier!
arctic-hen7 / perseus
A high-level frontend development framework for Rust with full support for SSR and SSG.
Perseus
Book • Crate Page • API Documentation • Contributing
Perseus is a blazingly fast frontend web development framework built in Rust with support for major rendering strategies, reactivity without a virtual DOM, and extreme customizability. It wraps the lower-level capabilities of Sycamore and provides a NextJS-like API!
-
✨ Supports static generation (serving only static resources) -
✨ Supports server-side rendering (serving dynamic resources) -
✨ Supports revalidation after time and/or with custom logic (updating rendered pages) -
✨ Supports incremental regeneration (build on demand) -
✨ Open build matrix (use any rendering strategy with anything else, mostly) -
✨ CLI harness that lets you build apps with ease and confidence
How to use
Check out the docs here for how to use Perseus.
Aim
Support every major rendering strategy and provide developers the ability to efficiently create super-fast apps with Rust and a fantastic developer experience!
Motivation
There is a sore lack of Rust…
Why?
Since switching from JavaScript to Rust, I've found that there's a distinct lack of a framework in Rust that supports SSR and SSG. Very few even support one. That's where Perseus comes in, with support for SSG, SSR, revalidation, and even incremental generation. In a nutshell, Perseus aims to support all the rendering strategies of NextJS, but in WASM.
Documentation
You can find Perseus' API documentation here and the book, which explains every feature in detail, here.
I've also written a multi-part tutorial on setting up a basic app with Perseus here, which explains everything from installation to serving!
Project Status
Right now, Perseus is still in its early stages, but I hope that it will help people to build lightning-fast apps in Rust using rendering strategies that, up until now, have only been available to JavaScript developers.
Final Words
When I first started out with React many years ago, I had the thought of building my own framework, which I quickly dismissed as foolish, I had everything I needed. But in Rust, we don't yet have everything we need to build awesome web apps, and so Perseus was born to try to solve that problem. Any feedback would be greatly appreciated!
Top comments (2)
great job!
Thanks!