Files
tuono/README.md
T

100 lines
3.0 KiB
Markdown
Raw Normal View History

2024-05-12 21:52:04 +02:00
<p align="center">
2024-06-03 20:59:39 +02:00
<img src="https://raw.githubusercontent.com/Valerioageno/tuono/main/assets/logo.png" width="200px">
2024-05-12 21:52:04 +02:00
</p>
<h1 align="center">Tuono<br>The react/rust fullstack framework</h1>
2024-06-16 10:21:16 +02:00
<div align="center">
<img src="https://github.com/Valerioageno/tuono/actions/workflows/rust.yml/badge.svg" />
2024-06-16 11:26:33 +02:00
<img src="https://github.com/Valerioageno/tuono/actions/workflows/typescript.yml/badge.svg" />
2024-06-16 10:21:16 +02:00
</div>
<br>
<br>
2024-05-18 11:50:56 +02:00
2024-05-02 20:49:46 +02:00
Tuono (Italian word for "thunder", pronounced /2 Oh No/).
Why Tuono? Just a badass name.
2024-04-27 10:10:50 +02:00
2024-06-21 19:33:01 +02:00
> Check out the [tutorial](https://github.com/Valerioageno/tuono/blob/main/docs/tutorial.md) to get started.
2024-06-06 20:54:09 +02:00
2024-06-05 21:17:26 +02:00
## Introduction
2024-06-21 19:33:01 +02:00
**NodeJs/Deno/Bun are the only runtimes that allow a React app to be fullstack right? (no)**
2024-06-05 21:17:26 +02:00
2024-06-21 19:33:01 +02:00
Tuono is a fullstack React framework with the server side written in Rust.
Because of this Tuono is extremely fast and the requests are handled by multithreaded Rust server.
React is still React - it is just superpowered.
**Rust is an hard language then writing server side code is hard as well right? (no again)**
Tuono provides a collection of utilities to handle the server side code seamlessly with the React code.
2024-06-23 20:15:33 +02:00
Each server side route is managed with a separate file alongside the React route. The routing is handled
by Tuono based on the files defined within the `./src/routes` directory.
2024-06-05 21:17:26 +02:00
2024-06-17 13:45:21 +02:00
## Features
2024-06-21 19:33:01 +02:00
- 🟦 Typescript
- 🌐 Routing
- 🔥 Hot Module Reload
- 🍭 CSS modules
2024-06-23 20:15:33 +02:00
- 🧬 Server Side Rendering
- 🧵 Multi thread backend
2024-07-22 07:59:43 +02:00
- ⌨️ MDX support
2024-06-23 20:15:33 +02:00
- ⚙️ Build optimizations
- Custom APIs*
2024-06-21 19:33:01 +02:00
- Image optimization*
- Server streamed content*
2024-06-17 13:45:21 +02:00
2024-06-21 19:33:01 +02:00
> *Development in progress
2024-06-05 21:17:26 +02:00
2024-06-21 19:33:01 +02:00
## Getting started
2024-06-05 21:17:26 +02:00
2024-06-23 20:15:33 +02:00
As already mentioned above I strongly suggest you to take a look at the
2024-06-21 19:33:01 +02:00
[tutorial](https://github.com/Valerioageno/tuono/blob/main/docs/tutorial.md).
2024-05-18 11:50:56 +02:00
2024-07-12 11:01:55 +02:00
Tuono is the CLI that provides all the needed commands to handle the fullstack project.
To download it is required [cargo](https://doc.rust-lang.org/cargo/) which is the [rust](https://www.rust-lang.org/)
2024-06-21 19:33:01 +02:00
package manager.
2024-05-18 11:50:56 +02:00
2024-07-12 11:01:55 +02:00
Then run `cargo install tuono`.
2024-05-18 20:45:35 +02:00
2024-07-12 11:01:55 +02:00
To list all the available commands run `tuono -h`
To create a new project run `tuono new [NAME]` (optionally you can pass the `--template` (or `-t`) flag - check the
2024-06-21 19:33:01 +02:00
[examples](https://github.com/Valerioageno/tuono/tree/main/examples) folder).
2024-05-18 20:45:35 +02:00
2024-06-21 19:33:01 +02:00
Then to run the local development environment run inside the project folder `tuono dev`
2024-05-18 11:50:56 +02:00
2024-06-23 20:15:33 +02:00
Finally when the project will be ready to be deployed just run `tuono build` to create the final React assets
2024-07-12 11:01:55 +02:00
and to set the server project in the `production` mode.
2024-06-23 20:15:33 +02:00
Now to execute it just run `cargo run --release`.
2024-06-21 19:33:01 +02:00
## Requirements
- rust
- cargo
- node
2024-06-25 14:24:59 +02:00
- npm/pnpm/yarn*
> yarn [pnp](https://yarnpkg.com/features/pnp) is not supported yet
2024-04-27 10:10:50 +02:00
## Folder structure
```
2024-06-15 14:36:09 +02:00
├── package.json
├── public
├── src
│ ├── routes
│ └── styles
├── Cargo.toml
├── README.md
└── tsconfig.json
2024-04-27 10:10:50 +02:00
```
2024-05-11 15:08:49 +02:00
2024-06-17 13:45:21 +02:00
## Contributing
2024-06-23 20:15:33 +02:00
Any help or suggestion will be appreciated and encouraged.
2024-06-17 13:45:21 +02:00
2024-06-05 21:17:26 +02:00
## License
2024-05-11 15:08:49 +02:00
2024-06-05 21:17:26 +02:00
This project is licensed under the MIT License.