A super-easy, composable, web server framework for warp speeds.
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Add Server Sent Events support (#138) Dec 18, 2018
src allow(deprecated) on Error::cause Dec 18, 2018
tests Add `warp::test::ws` test helpers Dec 12, 2018
.gitignore Add optional cookie value filter (#93) Sep 18, 2018
.rustfmt.toml disable rustfmt for now Oct 2, 2018
.travis.yml Add optional TLS support Dec 12, 2018
CHANGELOG.md v0.1.10 Dec 17, 2018
Cargo.toml v0.1.10 Dec 17, 2018
LICENSE init wip Mar 30, 2018
README.md add svg extension to crates.io badge Oct 3, 2018

README.md

warp

Travis Build Status MIT licensed crates.io Released API docs

A super-easy, composable, web server framework for warp speeds.

The fundamental building block of warp is the Filter: they can be combined and composed to express rich requirements on requests.

Thanks to its Filter system, warp provides these out of the box:

  • Path routing and parameter extraction
  • Header requirements and extraction
  • Query string deserialization
  • JSON and Form bodies
  • Static Files and Directories
  • Websockets
  • Access logging

Since it builds on top of hyper, you automatically get:

  • HTTP/1
  • HTTP/2
  • Asynchronous
  • One of the fastest HTTP implementations
  • Tested and correct

Example

#[macro_use]
extern crate warp;

use warp::Filter;

fn main() {
    // GET /hello/warp => 200 OK with body "Hello, warp!"
    let hello = path!("hello" / String)
        .map(|name| format!("Hello, {}!", name));

    warp::serve(hello)
        .run(([127, 0, 0, 1], 3030));
}

For more information you can check the docs or the examples.