backtalk 0.1.0

An asynchronous, streaming web server for JSON APIs
Documentation
extern crate backtalk;
use backtalk::*;
extern crate futures;
use futures::Future;
#[macro_use]
extern crate serde_json;

fn main() {
  let mut server = Server::new();
  use std::sync::Arc;
  use std::ops::Deref;
  let database = Arc::new(memory::MemoryAdapter::new());
  let chan = Arc::new(memory::MemoryChannel::new());
  server.resource("/cats", move |req: Request| {
    let database1 = database.clone();
    let chan1 = chan.clone();
    let chan2 = chan.clone();
    req
      .and_then(move |req| {
        match req.method() {
          Method::Listen => chan1.handle(req),
          _ => database1.handle(req),
        }
      })
      .and_then(move |reply| {
        util::send_from_reply(reply, chan2.deref())
      })
  });
  server.listen("127.0.0.1:3000");
}