Crate direkuta

source ·
Expand description

A web framework built around Hyper.

Examples

Please note that none of these are tested due to Direkuta being a web sever.

If, for some reason, they don’t work, have a look at the examples folder.

Simple

use direkuta::prelude::*;

Direkuta::new()
    .route(|r| {
        r.get("/", |_, _, _| {
            Response::new().with_body("Hello World!").build()
        });
    })
    .run("0.0.0.0:3000");

Tera Templates

extern crate direkuta;

use direkuta::prelude::*;sp
use direkuta::prelude::html::*;

fn main() {
    Direkuta::new()
        .route(|r| {
            r.get("/", |_, s, _| {
                Response::new().with_body(s
                    .get::<Tera>()
                    .render(Context::new(), "index.html")
                    .unwrap()).build()
            });
        }).run("0.0.0.0:3000");
}

JSON

extern crate direkuta;
#[macro_use]
extern crate serde_derive;

use direkuta::prelude::*;

#[derive(Serialize)]
struct Example {
    hello: String,
}

fn main() {
    Direkuta::new()
        .route(|r| {
            r.get("/", |_, _, _| {
                Response::new().with_json(|j| {
                    j.body(Example {
                        hello: String::from("world"),
                    });
                }).build()
            });
        }).run("0.0.0.0:3000");
}

Routing

extern crate direkuta;

use direkuta::prelude::*;

fn main() {
    Direkuta::new()
        .route(|r| {
            r.get("/<name:(.+)>", |_, _, c| {
                Response::new().with_body(c.get("name")).build()
            });
        }).run("0.0.0.0:3000");
}

Modules

Imports just the required parts of Direkuta.

Macros

Creates a HeaderMap from a list of key-value pairs.

Structs

A wrapper around IndexMap<String, String>.
Internal configuration for the server.
A builder function for CSS Responses.
The Direkuta web server itself.
A builder function for JS Responses.
A builder for JSON responses.
A simple logger middleware.
A wrapper around Hyper Request.
A wrapper around Hyper Response.
Router.
A wrapper around IndexMap<TypeId, Any>, used to store server state.

Enums

Wrapper around common and library error types.

Traits

All middleware must implement this trait.