/north-framework

Rust microservice framework

Primary LanguageRustApache License 2.0Apache-2.0

North Framework

A Microservice Framework for Rust

This repo contains packages and APIs that powers North Framework
rustc 1.61.0+

The project was born out of the need to build microsevices with Rust, benefiting from the performance and sweetness bundled in Rust. North framework avoids building transport layers itself, but more so uses existing crates such as web frameworks like poem, to make a simple, flexible, performant and easy to use microservice framework.


Getting Started

/// Entry into Example service
#[tokio::main]
pub async fn main() -> std::io::Result<()> {
    //#region Setup Server
    let service = north::new_service()
        .graceful_shutdown()
        .address("localhost")
        .name("Example Service")
        .path_prefix("/api")
        .port(8000)
        .api("api", Api)
        .build();

    north::power(service).up().await
    //#endregion
}

Crates

Crate Description Documentation ChangeLog
north North Framework (README) (CHANGELOG)
north-config North dynamic config (README) (CHANGELOG)
north-service [WIP] Service Reg & Disc (README) (CHANGELOG)
north-consul Async consul client (README) (CHANGELOG)

Folder Structure

The repository contains folders that require mentioning, which are;

North Framework
├── crates - In-house packages and libraries are managed
│   ├── north
│   ├── north-config
│   ├── north-service
│   ├── north-common
│   ├── north-consul
├── example - north examples
│   ├── basic
└── docs

Develop

Install Development Binaries

sh setup.sh