1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-11-15 21:31:24 +00:00
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
Find a file
2017-10-07 22:41:02 -07:00
src update ws docs 2017-10-07 22:41:02 -07:00
tests prep work 2017-09-30 09:10:03 -07:00
.gitignore prep work 2017-09-30 09:10:03 -07:00
.travis.yml docs 2017-10-06 23:14:13 -07:00
build.rs prep work 2017-09-30 09:10:03 -07:00
Cargo.toml websocket support 2017-10-07 21:48:00 -07:00
LICENSE prep work 2017-09-30 09:10:03 -07:00
Makefile prep work 2017-09-30 09:10:03 -07:00
README.md update ws docs 2017-10-07 22:41:02 -07:00

Actix Http Build Status

Actix http is a server http framework for Actix framework.


Actix Http is licensed under the Apache-2.0 license.

Features

  • HTTP 1.1 and 1.0 support
  • Streaming and pipelining support
  • WebSockets support
  • Configurable request routing

Usage

To use actix-http, add this to your Cargo.toml:

[dependencies]
actix-http = { git = "https://github.com/fafhrd91/actix-http.git" }

Example

extern crate actix;
extern crate actix_http;
extern crate futures;
use std::net;
use std::str::FromStr;

use actix::prelude::*;
use actix_http::*;

// Route
struct MyRoute;

impl Actor for MyRoute {
    type Context = HttpContext<Self>;
}

impl Route for MyRoute {
    type State = ();

    fn request(req: HttpRequest, payload: Option<Payload>,
               ctx: &mut HttpContext<Self>) -> HttpMessage<Self>
    {
        HttpMessage::reply_with(req, httpcodes::HTTPOk)
    }
}

fn main() {
    let system = System::new("test".to_owned());

    // create routing map with `MyRoute` route
    let mut routes = RoutingMap::default();
    routes
      .add_resource("/")
        .post::<MyRoute>();

    // start http server
    let http = HttpServer::new(routes);
    http.serve::<()>(
        &net::SocketAddr::from_str("127.0.0.1:8880").unwrap()).unwrap();

    // stop system
    Arbiter::handle().spawn_fn(|| {
        Arbiter::system().send(msgs::SystemExit(0));
        futures::future::ok(())
    });

    system.run();
    println!("Done");
}