Set up a modern rust+react web app by running one command.
tsync
(see install section)yarn
(ornpm
)- Stable rust
cargo install create-rust-app
# Creates a new rust+react project
create-rust-app my-todo-app
# .. select plugins, etc.
# Code-gen resources for your project
cd ./my-todo-app
create-rust-app
# .. select resource type / properties
- Project creation (
$ create-rust-app <project_name>
)- Run frontend & backend with a single command:
cargo fullstack
- Rust backend
- Fastest backend server (via actix_web)
- Database migrations (via diesel.rs)
- Sending mail (via lettre)
- PostgreSQL (via r2d2)
- React frontend
- Typescript, with backend type definition generation (via
tsync
) - Routing (via
react-router-dom
) - Typed
react-query
hooks generation ($ cd my_project && create-rust-app
, then select "Generate react-query hooks") - Update to latest create-react-app (generated frontend is not ejected from
create-react-app
)
- Typescript, with backend type definition generation (via
- Run frontend & backend with a single command:
- Resource creation (
$ cd my_project && create-rust-app
)- CRUD code-gen to reduce boileplate
react-query
hooks generation for frontend
- Auth plugin
- Add JWT token-based auth with a simple command
- Session management: restoration of previous session, revoking of refresh tokens
- Credentials management/recovery
- Email validation / activation flow
- Adds frontend UI + react hooks
- Adds auth service, and user / session models
- Block your endpoints via
Auth
guard - Follows OWASP security best practices
- Container plugin
- Dockerfile to containerize your rust app into a single image
- Admin Portal plugin
- View your database via the admin portal (editing functionality coming soon™)
- A "devbox" on the frontend indicates when the backend is compiling or when the database is not reachable
- Moreover, the devbox displays when migrations are pending + includes a "run migrations" button
(the full video can be found in the repo at this path: docs/create-rust-app-v2.mp4
)