Skip to content
This repository was archived by the owner on Oct 29, 2021. It is now read-only.

obsidian-rs/obsidian

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Obsidian Logo

Obsidian

Obsidian is an ergonomic Rust async http framework for reliable and efficient web.

Obsidian serve

Get Started

[dependencies]
# add these 2 dependencies in Cargo.toml file
obsidian = "0.2.2"
tokio = "0.2.21"

Hello World

use obsidian::{context::Context, App};

#[tokio::main]
async fn main() {
    let mut app: App = App::new();

    app.get("/", |ctx: Context| async { ctx.build("Hello World").ok() });

    app.listen(3000).await;
}

Hello World (with handler function)

use obsidian::{context::Context, App, ContextResult};

async fn hello_world(ctx: Context) -> ContextResult {
    ctx.build("Hello World").ok()
}


#[tokio::main]
async fn main() {
    let mut app: App = App::new();

    app.get("/", hello_world);

    app.listen(3000).await;
}

JSON Response

use obsidian::{context::Context, App, ContextResult};
use serde::*;

async fn get_user(ctx: Context) -> ContextResult {
    #[derive(Serialize, Deserialize)]
    struct User {
        name: String,
    };

    let user = User {
        name: String::from("Obsidian"),
    };
    ctx.build_json(user).ok()
}

#[tokio::main]
async fn main() {
    let mut app: App = App::new();

    app.get("/user", get_user);

    app.listen(3000).await;
}

Example Files

Example are located in example/main.rs.

Run Example

cargo run --example example

Current State

NOT READY FOR PRODUCTION YET!

About

Ergonomic async http framework for reliable and efficient web

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages