#web-apps #web-framework #cron-job #web #http #framework #jwt

zino

Next-generation framework for composable applications in Rust

128 releases (25 breaking)

new 0.26.2 Nov 28, 2024
0.25.4 Nov 12, 2024
0.24.0 Jul 29, 2024
0.19.3 Mar 31, 2024
0.1.2 Dec 29, 2022

#167 in HTTP server

Download history 122/week @ 2024-08-12 131/week @ 2024-08-19 23/week @ 2024-08-26 371/week @ 2024-09-09 181/week @ 2024-09-16 357/week @ 2024-09-23 100/week @ 2024-09-30 13/week @ 2024-10-07 347/week @ 2024-10-14 15/week @ 2024-10-21 5/week @ 2024-10-28 306/week @ 2024-11-11 95/week @ 2024-11-18

407 downloads per month
Used in zino-cli

MIT license

1MB
24K SLoC

github crates-io docs-rs

zino is a next-generation framework for composable applications in Rust which emphasizes simplicity, extensibility and productivity.

Highlights

  • 🚀 Out-of-the-box features for rapid application development.
  • 🎨 Minimal design, composable architecture and high-level abstractions.
  • 🌐 Adopt an API-first approch 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.

Here is the simplest application to run a server:

[package]
name = "zino-app"
version = "0.1.0"
edition = "2021"

[dependencies]
zino = { version = "0.26", features = ["axum"] }
use zino::prelude::*;

fn main() {
    zino::Cluster::boot().run()
}

Feature flags

The following optional features are available:

Name Description Default?
actix Enables the integration with actix-web. No
axum Enables the integration with axum. No
debug Enables the features for ease of debugging. No
dioxus Enables the integration with dioxus. No
i18n Enables the support for internationalization. No
jwt Enables the support for JSON Web Token. No
logger Enables the default logger. Yes
ntex Enables the integration with ntex. No
oidc Enables the support for OIDC via rauthy. No
opa Enables the support for OPA via regorus. No
orm Enables the ORM for MySQL, PostgreSQL or SQLite. No

Dependencies

~22–79MB
~1.5M SLoC