The first web framework in Rust to adopt the Model-View-Controller (MVC) architecture

Related tags

Command-line Integra
Overview

Integra Web Framework

Integra is a sleek, performant web framework for Rust, harnessing the power of the hyper library. Will become the first highly pefrormant backend framework with MVC structure!

Crates.io

🌟 Features

  • Fast: Built on top of hyper, one of the Rust's fastest web libraries.
  • Explicit Routing: Define routes explicitly with a clear and intuitive router reminding you Laravel.
  • Safety First: Benefit from Rust's strong safety guarantees.
  • MVC: Integra is leading the way with MVC (Model-View-Controller) in Rust. Model support via Diesel ORM integration is under development.
  • Minimalistic Design: No bloat, just the essentials.

🔥🔥🔥 Performance Benchmarks 🔥🔥🔥

The following benchmarks were conducted on an M2 Pro machine using a single CPU core. The test was performed using the wrk benchmarking tool on a basic project setup. This results were close when I used hello world with salvo.

wrk http://127.0.0.1:3029/hello -t12 -c400 -d30s
Running 30s test @ http://127.0.0.1:3029/hello
  12 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     3.80ms  593.67us   8.34ms   74.98%
    Req/Sec     8.71k     0.88k   11.93k    59.64%
  3122975 requests in 30.04s, 869.66MB read
  Socket errors: connect 0, read 232, write 0, timeout 0
Requests/sec: 103977.74
Transfer/sec:     28.95MB

Please note that performance can vary based on many factors, including the specific workload, the configuration of the server, and the client's network conditions.

🖥️ Test Environment

  • OS: Mac OS Ventura 13.5.1
  • CPU: M2 Pro
  • Model: MacBook Pro M2 Pro (16" and 16GB)

🚀 Quickstart with Integra

  1. Clone this repository:
git clone https://github.com/SapphoTech/integra-starter-template.git my_project_name

📘 Usage

To-do

🎯 ROADMAP

  • Modules

    • Define application's structure using modules
    • Module encapsulation
    • Shared modules
  • Controllers

    • Route parameters
    • Request, Response objects handling
  • Supported requests

    • GET
    • POST
    • PUT
    • DELETE
    • HEAD
    • CONNECT
    • OPTIONS
    • TRACE
    • PATCH
  • Middleware

    • Middleware for request/response manipulation
    • Execution order
  • Guards

    • Route guards for authentication and authorization
  • Interceptors

    • Transforming responses
    • Handling request/response lifecycle
  • Macro Attributes

    • Custom macro attributes for extracting custom data from requests
  • Models

    • Integration with Diesel ORM
    • Support for migrations
    • CRUD operations
    • Advanced querying and filtering
  • Repositories

    • Generic Repository pattern
    • User Repository
  • Providers and Services

    • Custom providers
    • Singleton services
  • Views

    • Template engine integration
    • Support for dynamic content rendering
    • Layouts and partials

🤝 Contributing

To-do

You might also like...
View your github contribution calander in unicode.
View your github contribution calander in unicode.

View your github contribution calander in the terminal Now in rust! gh-cal 0.1.0 marshmallow View your github contribution calander in unicode USAGE:

A simple tui to view & control docker containers
A simple tui to view & control docker containers

oxker A simple tui to view & control docker containers Built in Rust, making heavy use of tui-rs & Bollard Download & install See releases download &

Introducing Inlyne, a GPU powered yet browsless tool to help you quickly view markdown files in the blink of an eye.
Introducing Inlyne, a GPU powered yet browsless tool to help you quickly view markdown files in the blink of an eye.

Inlyne - a GPU powered, browserless, markdown + html viewer inlyne README.md --theme dark/light About Markdown files are a wonderful tool to get forma

A formatter for the leptos view! macro

leptosfmt A formatter for the leptos view! macro All notable changes are documented in: CHANGELOG.md Install cargo install leptosfmt or for trying out

View Source, but for terminal escape sequences
View Source, but for terminal escape sequences

Escape Artist Escape Artist is a tool for seeing ANSI escape codes in terminal applications. You interact with your shell just like you normally would

A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.
A terminal ASCII media player. View images, gifs, videos, webcam, YouTube, etc.. directly in the terminal as ASCII art.

Terminal Media Player View images, videos (files or YouTube links), webcam, etc directly in the terminal as ASCII. All images you see below are just m

Terminal UI for leetcode. Lets you browse questions through different topics. View, solve, run and submit questions from TUI.
Terminal UI for leetcode. Lets you browse questions through different topics. View, solve, run and submit questions from TUI.

Leetcode TUI Use Leetcode in your terminal. Why this TUI: My motivation for creating leetcode-tui stemmed from my preference for tools that are lightw

A filesystem driver that allows you to view your Blackboard course contents as if they were normal files and folders on your system!
A filesystem driver that allows you to view your Blackboard course contents as if they were normal files and folders on your system!

BlackboardFS Blackboard: noun A website so bad that it might as well be a network drive. BlackboardFS is a filesystem driver that allows you to view y

Utility to display a tree view of directories.

TreeCraft v0.2.3 (16 October 2023) TreeCraft is a command-line utility written in pure Rust that helps you visualize directory structures in ASCII for

Owner
null
Tight Model format is a lossy 3D model format focused on reducing file size as much as posible without decreasing visual quality of the viewed model or read speeds.

What is Tight Model Format The main goal of the tmf project is to provide a way to save 3D game assets compressed in such a way, that there are no not

null 59 Mar 6, 2023
A git sub-command to view your git repository in the web browser

git-view A git sub-command to view your git repository in the web browser! About Are you also frustrated from moving your hands away from the keyboard

Hamothy 5 Sep 26, 2022
Write Cross-platform application with React-like decralative UI framework and scalable ECS architecture all in Rust.

bevy_dioxus Dioxus Plugin for Bevy Write Cross-platform application with React-like decralative UI framework and scalable ECS architecture all in Rust

Junichi Sugiura 269 Dec 29, 2022
Expose standard or fully custom USB peripherals (gadgets) through a USB device controller (UDC) on Linux using Rust.

usb-gadget This library allows implementation of USB peripherals, so called USB gadgets, on Linux devices that have a USB device controller (UDC). Bot

Sebastian Urban 21 Oct 30, 2023
A controller for the display and fan of the Raspberry Pi Waveshare PoE HAT written in Rust 🦀

???? RustBerry-PoE-Monitor RustBerry-PoE-Monitor is a Rust-based monitoring and control tool for the Raspberry Pi, specifically designed for use with

jack 5 Nov 27, 2023
Cost saving K8s controller to scale down and up of resources during non-business hours

Kube-Saver Motivation Scale down cluster nodes by scaling down Deployments, StatefulSet, CronJob, Hpa during non-business hours and save $$, but if yo

Mahesh Rayas 5 Aug 15, 2022
A small command-line application to view images from the terminal written in Rust.

A small command-line application to view images from the terminal written in Rust. It is basically the front-end of viuer

Atanas Yankov 1.9k Jan 3, 2023
A discord bot to view & monitor OpenSea collections, written in Rust

Titan What is this This is a discord bot to monitor OpenSea collections and get info about them, including: Floor Price Activity Sales per Hour And mo

theldb 3 Oct 11, 2022
A rust crate to view a structure as raw bytes (&[u8])

rawbytes A Rust crate to view a structure as a plain byte array (&[u8]). Super simple. Tiny. Zero dependencies. This is a safer interface to slice::fr

Frank Denis 4 Sep 7, 2023
❗️ Small script to view GitHub notifications in the terminal

github-notifications Small script to view GitHub notifications in the terminal Shows and color-codes the notification source, eg if you're the owner o

Brian Shaginaw 1 Jan 10, 2022