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.
/// 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
}
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) |
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
sh setup.sh