1 unstable release

Uses old Rust 2015

0.1.0 Sep 11, 2017

#21 in #rest-api

MIT license

40KB
1K SLoC

Resty

Resty - a simple JSON REST-API framework for Rust.

Build Status

Documentation

Examples

extern crate futures;
extern crate resty;
#[macro_use]
extern crate serde_derive;

use futures::Future;

#[derive(Deserialize, Serialize)]
struct Call {
    pub test: u64,
}

fn main() {
    let mut server = resty::Router::new();
    server.get("/", |_| {
        Ok("Hello World!")
    });
    server.post("/call", |request| {
        // Deserialize payload
        request.json().map(|mut call: Call| {
            call.test += 1;
            // And return the same payload as a response
            call
        })
    });

    let listening = server.bind("localhost:3000").unwrap();
    listening.wait()
}

For more see examples folder.

TODO

General

  • get_*() for dynamic params.
  • Auto handle HEAD requests.
  • CORS support
  • Middlewares
  • Cache Control
  • Auto-derive Into<Router> for structs.
  • Query parameters
  • Optional parameters
  • Parameters with /

Dependencies

~10MB
~179K SLoC