2023-01-07 18:43:42 +08:00
|
|
|
# zino
|
|
|
|
|
2023-07-18 00:05:56 +08:00
|
|
|
`zino` is a **next-generation** framework for **composable** applications in Rust
|
2023-07-08 18:57:15 +08:00
|
|
|
which emphasizes **simplicity**, **extensibility** and **productivity**.
|
2023-01-07 18:43:42 +08:00
|
|
|
|
2023-01-08 00:05:03 +08:00
|
|
|
[![Crates.io](https://img.shields.io/crates/v/zino)][zino]
|
2023-01-08 19:54:25 +08:00
|
|
|
[![Documentation](https://shields.io/docsrs/zino)][zino-docs]
|
|
|
|
[![License](https://img.shields.io/crates/l/zino)][license]
|
2023-01-08 00:05:03 +08:00
|
|
|
|
2023-01-07 18:43:42 +08:00
|
|
|
## Highlights
|
|
|
|
|
|
|
|
- 🚀 Out-of-the-box features for rapid application development.
|
2023-07-28 18:47:41 +08:00
|
|
|
- 🎨 Minimal design, composable architecture and high-level abstractions.
|
2023-07-05 15:46:01 +08:00
|
|
|
- 🌐 Adopt an API-first approch to development with open standards.
|
2023-01-07 18:43:42 +08:00
|
|
|
- ⚡ Embrace practical conventions to get the best performance.
|
2023-08-16 11:48:06 +08:00
|
|
|
- 💎 Highly optimized ORM for MySQL, PostgreSQL and SQLite based on [`sqlx`].
|
2023-07-28 18:47:41 +08:00
|
|
|
- ✨ Innovations on query population, field translation and model hooks.
|
2023-05-15 09:27:28 +08:00
|
|
|
- 📅 Lightweight scheduler for sync and async cron jobs.
|
2023-03-31 22:53:35 +08:00
|
|
|
- 💠 Unified access to storage services, data sources and chatbots.
|
2023-05-07 18:09:02 +08:00
|
|
|
- 📊 Built-in support for [`tracing`], [`metrics`] and logging.
|
2024-04-23 00:55:18 +08:00
|
|
|
- 💖 Full integrations with [`actix-web`], [`axum`], [`dioxus`] and [`ntex`].
|
2023-01-07 18:43:42 +08:00
|
|
|
|
|
|
|
## Getting started
|
|
|
|
|
2024-04-23 00:55:18 +08:00
|
|
|
You can start with the example [`actix-app`], [`axum-app`], [`dioxus-desktop`] or [`ntex-app`].
|
2024-09-10 17:36:53 +08:00
|
|
|
It requires **Rust 1.80+** to build the project.
|
2023-03-21 23:01:09 +08:00
|
|
|
|
|
|
|
```shell
|
2023-03-23 17:25:00 +08:00
|
|
|
cd examples/axum-app
|
2024-02-28 16:36:54 +08:00
|
|
|
cargo run
|
|
|
|
```
|
|
|
|
|
|
|
|
Here is the simplest application to run a server:
|
2024-02-29 20:35:09 +08:00
|
|
|
```toml
|
2024-02-28 16:36:54 +08:00
|
|
|
[package]
|
|
|
|
name = "zino-app"
|
|
|
|
version = "0.1.0"
|
|
|
|
edition = "2021"
|
|
|
|
|
|
|
|
[dependencies]
|
2024-09-13 17:58:01 +08:00
|
|
|
zino = { version = "0.25", features = ["axum"] }
|
2024-02-28 16:36:54 +08:00
|
|
|
```
|
|
|
|
|
|
|
|
```rust
|
|
|
|
use zino::prelude::*;
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
zino::Cluster::boot().run()
|
|
|
|
}
|
2023-03-21 23:01:09 +08:00
|
|
|
```
|
2023-01-07 18:43:42 +08:00
|
|
|
|
|
|
|
## Crates
|
|
|
|
|
|
|
|
| Name | Description | Crates.io | Documentation |
|
|
|
|
|-----------------|------------------------|--------------|---------------|
|
2023-01-08 19:54:25 +08:00
|
|
|
| [`zino-core`] | Core types and traits. | [![Crates.io](https://img.shields.io/crates/v/zino-core)][zino-core] | [![Documentation](https://shields.io/docsrs/zino-core)][zino-core-docs] |
|
|
|
|
| [`zino-derive`] | Derived traits. | [![Crates.io](https://img.shields.io/crates/v/zino-derive)][zino-derive] | [![Documentation](https://shields.io/docsrs/zino-derive)][zino-derive-docs] |
|
2023-08-01 19:09:42 +08:00
|
|
|
| [`zino-model`] | Domain models. | [![Crates.io](https://img.shields.io/crates/v/zino-model)][zino-model] | [![Documentation](https://shields.io/docsrs/zino-model)][zino-model-docs] |
|
2023-10-25 22:37:23 +08:00
|
|
|
| [`zino-extra`] | Extra utilities. | [![Crates.io](https://img.shields.io/crates/v/zino-extra)][zino-extra] | [![Documentation](https://shields.io/docsrs/zino-extra)][zino-extra-docs] |
|
|
|
|
| [`zino-dioxus`] | Dioxus components. | [![Crates.io](https://img.shields.io/crates/v/zino-dioxus)][zino-dioxus] | [![Documentation](https://shields.io/docsrs/zino-dioxus)][zino-dioxus-docs] |
|
2024-09-18 18:04:48 +08:00
|
|
|
| [`zino-amis`] | UI generator for amis. | [![Crates.io](https://img.shields.io/crates/v/zino-amis)][zino-amis] | [![Documentation](https://shields.io/docsrs/zino-amis)][zino-amis-docs] |
|
2023-10-26 22:22:16 +08:00
|
|
|
| [`zino-cli`] | CLI tools. | [![Crates.io](https://img.shields.io/crates/v/zino-cli)][zino-cli] | [![Documentation](https://shields.io/docsrs/zino-cli)][zino-cli-docs] |
|
2023-01-07 18:43:42 +08:00
|
|
|
|
|
|
|
## License
|
|
|
|
|
|
|
|
This project is licensed under the [MIT license][license].
|
|
|
|
|
2023-08-31 16:13:55 +08:00
|
|
|
## Community
|
|
|
|
|
2023-09-01 11:49:10 +08:00
|
|
|
If you have any problems or ideas, please don't hesitate to [open an issue][zino-issue].
|
2023-08-31 16:13:55 +08:00
|
|
|
|
2024-01-01 19:08:36 +08:00
|
|
|
[`zino-core`]: https://github.com/zino-rs/zino/tree/main/zino-core
|
|
|
|
[`zino-derive`]: https://github.com/zino-rs/zino/tree/main/zino-derive
|
|
|
|
[`zino-model`]: https://github.com/zino-rs/zino/tree/main/zino-model
|
|
|
|
[`zino-extra`]: https://github.com/zino-rs/zino/tree/main/zino-extra
|
|
|
|
[`zino-dioxus`]: https://github.com/zino-rs/zino/tree/main/zino-dioxus
|
2024-09-18 18:04:48 +08:00
|
|
|
[`zino-amis`]: https://github.com/zino-rs/zino/tree/main/zino-amis
|
2024-01-01 19:08:36 +08:00
|
|
|
[`zino-cli`]: https://github.com/zino-rs/zino/tree/main/zino-cli
|
2023-01-07 18:43:42 +08:00
|
|
|
[zino]: https://crates.io/crates/zino
|
|
|
|
[zino-docs]: https://docs.rs/zino
|
|
|
|
[zino-core]: https://crates.io/crates/zino-core
|
|
|
|
[zino-core-docs]: https://docs.rs/zino-core
|
|
|
|
[zino-derive]: https://crates.io/crates/zino-derive
|
|
|
|
[zino-derive-docs]: https://docs.rs/zino-derive
|
|
|
|
[zino-model]: https://crates.io/crates/zino-model
|
|
|
|
[zino-model-docs]: https://docs.rs/zino-model
|
2023-10-25 22:37:23 +08:00
|
|
|
[zino-extra]: https://crates.io/crates/zino-extra
|
|
|
|
[zino-extra-docs]: https://docs.rs/zino-extra
|
|
|
|
[zino-dioxus]: https://crates.io/crates/zino-dioxus
|
|
|
|
[zino-dioxus-docs]: https://docs.rs/zino-dioxus
|
2024-09-13 17:58:01 +08:00
|
|
|
[zino-amis]: https://crates.io/crates/zino-amis
|
|
|
|
[zino-amis-docs]: https://docs.rs/zino-amis
|
2023-10-25 22:37:23 +08:00
|
|
|
[zino-cli]: https://crates.io/crates/zino-cli
|
|
|
|
[zino-cli-docs]: https://docs.rs/zino-cli
|
2023-01-11 14:44:23 +08:00
|
|
|
[`sqlx`]: https://crates.io/crates/sqlx
|
|
|
|
[`tracing`]: https://crates.io/crates/tracing
|
|
|
|
[`metrics`]: https://crates.io/crates/metrics
|
2023-05-06 18:22:46 +08:00
|
|
|
[`actix-web`]: https://crates.io/crates/actix-web
|
|
|
|
[`axum`]: https://crates.io/crates/axum
|
2023-08-13 22:40:09 +08:00
|
|
|
[`dioxus`]: https://crates.io/crates/dioxus
|
2024-04-23 00:55:18 +08:00
|
|
|
[`ntex`]: https://crates.io/crates/ntex
|
2024-01-01 19:08:36 +08:00
|
|
|
[`actix-app`]: https://github.com/zino-rs/zino/tree/main/examples/actix-app
|
|
|
|
[`axum-app`]: https://github.com/zino-rs/zino/tree/main/examples/axum-app
|
|
|
|
[`dioxus-desktop`]: https://github.com/zino-rs/zino/tree/main/examples/dioxus-desktop
|
2024-04-23 00:55:18 +08:00
|
|
|
[`ntex-app`]: https://github.com/zino-rs/zino/tree/main/examples/ntex-app
|
2024-01-01 19:08:36 +08:00
|
|
|
[license]: https://github.com/zino-rs/zino/blob/main/LICENSE
|
|
|
|
[zino-issue]: https://github.com/zino-rs/zino/issues/new
|