[][src]Crate scrappy

scrappy web is a small, pragmatic, and extremely fast web framework for Rust.

use scrappy::{web, App, Responder, HttpServer};

async fn index(info: web::Path<(String, u32)>) -> impl Responder {
    format!("Hello {}! id:{}", info.0, info.1)
}

#[scrappy_rt::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| App::new().service(
        web::resource("/{name}/{id}/index.html").to(index))
    )
        .bind("127.0.0.1:8080")?
        .run()
        .await
}

Documentation & community resources

Besides the API documentation (which you are currently looking at!), several other resources are available:

To get started navigating the API documentation you may want to consider looking at the following pages:

  • App: This struct represents an scrappy-web application and is used to configure routes and other common settings.

  • HttpServer: This struct represents an HTTP server instance and is used to instantiate and configure servers.

  • web: This module provides essential helper functions and types for application registration.

  • HttpRequest and HttpResponse: These structs represent HTTP requests and responses and expose various methods for inspecting, creating and otherwise utilizing them.

Features

  • Supported HTTP/1.x and HTTP/2.0 protocols
  • Streaming and pipelining
  • Keep-alive and slow requests handling
  • WebSockets server/client
  • Transparent content compression/decompression (br, gzip, deflate)
  • Configurable request routing
  • Multipart streams
  • SSL support with OpenSSL or native-tls
  • Middlewares (Logger, Session, CORS, DefaultHeaders)
  • Supports scrappy actor framework
  • Supported Rust version: 1.39 or later

Package feature

  • client - enables http client (default enabled)
  • compress - enables content encoding compression support (default enabled)
  • openssl - enables ssl support via openssl crate, supports http/2
  • rustls - enables ssl support via rustls crate, supports http/2
  • secure-cookies - enables secure cookies support, includes ring crate as dependency

Modules

body
client

An HTTP Client

cookie

https://github.com/alexcrichton/cookie-rs fork

dev

The scrappy-web prelude for library developers

error

Error and Result module

guard

Route match guards.

http

Various HTTP related types

middleware

Middlewares

test

Various helpers for scrappy applications to use during testing.

web

Essentials helper functions and types for application registration.

Structs

App

Application builder - structure that follows the builder pattern for building application instances.

Error

General purpose scrappy web error.

HttpRequest

An HTTP Request

HttpResponse

An HTTP Response

HttpServer

An HTTP Server.

Resource

Resource is an entry in resources table which corresponds to requested URL.

Route

Resource route definition

Scope

Resources scope.

Enums

Either

Combines two different responder types into a single type

Traits

FromRequest

Trait implemented by types that can be extracted from request.

HttpMessage

Trait that implements general purpose operations on http messages

Responder

Trait implemented by types that can be converted to a http response.

ResponseError

Error that can be converted to Response

Type Definitions

Result

A specialized Result for scrappy web operations