https://github.com/zino-rs/zino
Next-generation framework for composable applications in Rust.
https://github.com/zino-rs/zino
asynchronous http orm rust web
Last synced: 24 days ago
JSON representation
Next-generation framework for composable applications in Rust.
- Host: GitHub
- URL: https://github.com/zino-rs/zino
- Owner: zino-rs
- License: mit
- Created: 2022-12-29T03:09:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-23T07:19:14.000Z (11 months ago)
- Last Synced: 2024-05-23T08:33:07.674Z (11 months ago)
- Topics: asynchronous, http, orm, rust, web
- Language: Rust
- Homepage: https://crates.io/crates/zino
- Size: 2.96 MB
- Stars: 657
- Watchers: 12
- Forks: 40
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-rust - Zino - generation framework for composable applications (Libraries / Web programming)
README
# zino
`zino` is a **next-generation** framework for **composable** applications in Rust
which emphasizes **simplicity**, **extensibility** and **productivity**.[][zino]
[][zino-docs]
[][license]## Highlights
- 🚀 Out-of-the-box features for rapid application development.
- 🎨 Minimal design, composable architecture and high-level abstractions.
- 🌐 Adopt an API-first approach to development with open standards.
- ⚡ Embrace practical conventions to get the best performance.
- 💎 Highly optimized ORM for MySQL, PostgreSQL and SQLite based on [`sqlx`].
- ✨ Innovations on query population, field translation and model hooks.
- 📅 Lightweight scheduler for sync and async cron jobs.
- 💠 Unified access to storage services, data sources and chatbots.
- 📊 Built-in support for [`tracing`], [`metrics`] and logging.
- 💖 Full integrations with [`actix-web`], [`axum`], [`dioxus`] and more.## Getting started
You can start with the example [`actix-app`], [`axum-app`], [`dioxus-desktop`] or [`ntex-app`].
It requires **Rust 1.85+** to build the project.```shell
cd examples/axum-app
cargo run
```Here is the simplest application to run a server:
```toml
[package]
name = "zino-app"
version = "0.1.0"
edition = "2024"
rust-version = "1.85"[dependencies]
zino = { version = "0.34", features = ["axum"] }
``````rust
use zino::prelude::*;fn main() {
zino::Cluster::boot().run()
}
```## Crates
| Name | Description | Crates.io | Documentation |
|-----------------|-----------------------------------|--------------|---------------|
| [`zino-core`] | Core types and traits. | [][zino-core] | [][zino-core-docs] |
| [`zino-auth`] | Authentication and authorization. | [][zino-auth] | [][zino-auth-docs] |
| [`zino-channel`] | Cloud events and subscriptions. | [][zino-channel] | [][zino-channel-docs] |
| [`zino-storage`] | Files and storage services. | [][zino-storage] | [][zino-storage-docs] |
| [`zino-http`] | Requests and responses. | [][zino-http] | [][zino-http-docs] |
| [`zino-openapi`] | OpenAPI docs generator. | [][zino-openapi] | [][zino-openapi-docs] |
| [`zino-orm`] | Database schema and ORM. | [][zino-orm] | [][zino-orm-docs] |
| [`zino-derive`] | Derived traits. | [][zino-derive] | [][zino-derive-docs] |
| [`zino-model`] | Domain models. | [][zino-model] | [][zino-model-docs] |
| [`zino-connector`] | Connector to data sources. | [][zino-connector] | [][zino-connector-docs] |
| [`zino-chatbot`] | Chatbot services. | [][zino-chatbot] | [][zino-chatbot-docs] |
| [`zino-extra`] | Extra utilities. | [][zino-extra] | [][zino-extra-docs] |
| [`zino-actix`] | Integrations with actix-web. | [][zino-actix] | [][zino-actix-docs] |
| [`zino-axum`] | Integrations with axum. | [][zino-axum] | [][zino-axum-docs] |
| [`zino-ntex`] | Integrations with ntex. | [][zino-ntex] | [][zino-ntex-docs] |
| [`zino-dioxus`] | Dioxus components. | [][zino-dioxus] | [][zino-dioxus-docs] |
| [`zino-amis`] | UI generator for amis. | [][zino-amis] | [][zino-amis-docs] |
| [`zino-cli`] | CLI tools. | [][zino-cli] | [][zino-cli-docs] |## License
This project is licensed under the [MIT license][license].
## Community
If you have any problems or ideas, please don't hesitate to [open an issue][zino-issue].
[`zino-core`]: https://github.com/zino-rs/zino/tree/main/crates/zino-core
[`zino-auth`]: https://github.com/zino-rs/zino/tree/main/crates/zino-auth
[`zino-channel`]: https://github.com/zino-rs/zino/tree/main/crates/zino-channel
[`zino-storage`]: https://github.com/zino-rs/zino/tree/main/crates/zino-storage
[`zino-http`]: https://github.com/zino-rs/zino/tree/main/crates/zino-http
[`zino-openapi`]: https://github.com/zino-rs/zino/tree/main/crates/zino-openapi
[`zino-derive`]: https://github.com/zino-rs/zino/tree/main/crates/zino-derive
[`zino-orm`]: https://github.com/zino-rs/zino/tree/main/crates/zino-orm
[`zino-model`]: https://github.com/zino-rs/zino/tree/main/crates/zino-model
[`zino-connector`]: https://github.com/zino-rs/zino/tree/main/crates/zino-connector
[`zino-chatbot`]: https://github.com/zino-rs/zino/tree/main/crates/zino-chatbot
[`zino-extra`]: https://github.com/zino-rs/zino/tree/main/crates/zino-extra
[`zino-actix`]: https://github.com/zino-rs/zino/tree/main/crates/zino-actix
[`zino-axum`]: https://github.com/zino-rs/zino/tree/main/crates/zino-axum
[`zino-ntex`]: https://github.com/zino-rs/zino/tree/main/crates/zino-ntex
[`zino-dioxus`]: https://github.com/zino-rs/zino/tree/main/crates/zino-dioxus
[`zino-amis`]: https://github.com/zino-rs/zino/tree/main/crates/zino-amis
[`zino-cli`]: https://github.com/zino-rs/zino-cli
[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-auth]: https://crates.io/crates/zino-auth
[zino-auth-docs]: https://docs.rs/zino-auth
[zino-channel]: https://crates.io/crates/zino-channel
[zino-channel-docs]: https://docs.rs/zino-channel
[zino-storage]: https://crates.io/crates/zino-storage
[zino-storage-docs]: https://docs.rs/zino-storage
[zino-http]: https://crates.io/crates/zino-http
[zino-http-docs]: https://docs.rs/zino-http
[zino-openapi]: https://crates.io/crates/zino-openapi
[zino-openapi-docs]: https://docs.rs/zino-openapi
[zino-orm]: https://crates.io/crates/zino-orm
[zino-orm-docs]: https://docs.rs/zino-orm
[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
[zino-connector]: https://crates.io/crates/zino-connector
[zino-connector-docs]: https://docs.rs/zino-connector
[zino-chatbot]: https://crates.io/crates/zino-chatbot
[zino-chatbot-docs]: https://docs.rs/zino-chatbot
[zino-extra]: https://crates.io/crates/zino-extra
[zino-extra-docs]: https://docs.rs/zino-extra
[zino-actix]: https://crates.io/crates/zino-actix
[zino-actix-docs]: https://docs.rs/zino-actix
[zino-axum]: https://crates.io/crates/zino-axum
[zino-axum-docs]: https://docs.rs/zino-axum
[zino-ntex]: https://crates.io/crates/zino-ntex
[zino-ntex-docs]: https://docs.rs/zino-ntex
[zino-dioxus]: https://crates.io/crates/zino-dioxus
[zino-dioxus-docs]: https://docs.rs/zino-dioxus
[zino-amis]: https://crates.io/crates/zino-amis
[zino-amis-docs]: https://docs.rs/zino-amis
[zino-cli]: https://crates.io/crates/zino-cli
[zino-cli-docs]: https://docs.rs/zino-cli
[`sqlx`]: https://crates.io/crates/sqlx
[`tracing`]: https://crates.io/crates/tracing
[`metrics`]: https://crates.io/crates/metrics
[`actix-web`]: https://crates.io/crates/actix-web
[`axum`]: https://crates.io/crates/axum
[`dioxus`]: https://crates.io/crates/dioxus
[`ntex`]: https://crates.io/crates/ntex
[`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
[`ntex-app`]: https://github.com/zino-rs/zino/tree/main/examples/ntex-app
[license]: https://github.com/zino-rs/zino/blob/main/LICENSE
[zino-issue]: https://github.com/zino-rs/zino/issues/new