Skip to content
/ warp Public
forked from seanmonstar/warp

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

License

Notifications You must be signed in to change notification settings

hamptokr/warp

This branch is 98 commits behind seanmonstar/warp:master.

Folders and files

NameName
Last commit message
Last commit date
Nov 1, 2020
Nov 7, 2020
Dec 9, 2020
Sep 26, 2020
Sep 18, 2018
Aug 31, 2020
Oct 14, 2020
May 18, 2020
Aug 14, 2020

Repository files navigation

warp

crates.io Released API docs MIT licensed GHA Build Status Discord chat

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
  • Multipart form data
  • Static Files and Directories
  • Websockets
  • Access logging
  • Gzip, Deflate, and Brotli compression

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

Add warp and Tokio to your dependencies:

tokio = { version = "0.2", features = ["full"] }
warp = "0.2"

And then get started in your main.rs:

use warp::Filter;

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

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

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 100.0%