serverkit 0.4.1

A portable Rust HTTP application layer for Workers and native servers
Documentation
#![forbid(unsafe_code)]
#![allow(async_fn_in_trait)]
#![doc = include_str!("../README.md")]

extern crate self as serverkit;

mod app;
mod body;
mod cookie;
mod error;
mod extract;
mod handler;
mod middleware;
mod multipart;
pub mod openapi;
mod redirect;
mod request;
mod response;
mod route;
mod router;
pub mod schemaval;
mod sse;
mod stream;
#[cfg(feature = "websocket")]
mod websocket;

pub use app::{Config, Router};

pub use body::Body;

pub use cookie::{Cookie, Cookies, SameSite};

pub use error::{Error, ErrorFormat};

pub use extract::{
    Bytes, ConnectInfo, Extension, Form, FormError, FromRequest, Header, HeaderError,
    MissingConnectInfo, MissingExtension, MissingState, Path, PathError, Query, QueryError, State,
    Text, TextError,
};

#[cfg(feature = "json")]
pub use extract::{Json, JsonError};

pub use handler::Handler;

pub use middleware::{Middleware, Next};

pub use multipart::{Multipart, MultipartError, MultipartField};

pub use openapi::{
    ApiKeyLocation, ExampleValue, OAuthFlow, OAuthFlows, OpenApi, OpenApiDocument, Operation,
    ParameterLocation, Scalar, ScalarDeveloperTools, SecurityRequirement, SecurityScheme, Server,
};

pub use request::{Headers, InvalidHeader, InvalidMethod, Method, Request};

pub use redirect::Redirect;

pub use response::{IntoResponse, Response, ResponseBody};

pub use route::{Route, RouteMethods};

pub use schemaval::{
    DecodeOptions, ExtraFields, Schema, SchemaField, SchemaKind, SchemaMetadata, UnknownFields,
    ValidationErrors, ValidationIssue, ValidationRule, Value, ValueSchema, Values,
};

pub use sse::{Sse, SseEvent, SseStream};

pub use serverkit_macros::Schema;

#[doc(hidden)]
pub use route::Routes;

pub(crate) use router::{Dispatch, Dispatcher, Scope};

pub use stream::{Chunk, RequestStream, ResponseStream, StreamError};

#[cfg(feature = "websocket")]
pub use websocket::{
    WebSocket, WebSocketError, WebSocketMessage, WebSocketUpgrade, WebSocketUpgradeError,
};

#[doc(hidden)]
pub mod adapter {
    #[cfg(feature = "websocket")]
    pub use crate::websocket::{WebSocketIo, WebSocketPlan};
}

pub mod prelude {
    pub use crate::{
        ApiKeyLocation, Body, Chunk, Config, DecodeOptions, Error, ErrorFormat, ExampleValue,
        ExtraFields, FromRequest, Handler, Header, HeaderError, Headers, IntoResponse, Method,
        Middleware, Next, OAuthFlow, OAuthFlows, OpenApi, OpenApiDocument, Operation,
        ParameterLocation, Path, PathError, Query, QueryError, Request, RequestStream, Response,
        ResponseBody, ResponseStream, Route, RouteMethods, Router, Scalar, ScalarDeveloperTools,
        Schema, SchemaField, SchemaKind, SchemaMetadata, SecurityRequirement, SecurityScheme,
        Server, StreamError, UnknownFields, ValidationErrors, ValidationIssue, ValidationRule,
        Value, ValueSchema, Values,
    };

    pub use crate::{
        Bytes, ConnectInfo, Cookie, Cookies, Extension, Form, FormError, InvalidHeader,
        InvalidMethod, MissingConnectInfo, MissingExtension, MissingState, Multipart,
        MultipartError, MultipartField, Redirect, SameSite, Sse, SseEvent, SseStream, State, Text,
        TextError,
    };

    #[cfg(feature = "json")]
    pub use crate::{Json, JsonError};

    #[cfg(feature = "websocket")]
    pub use crate::{
        WebSocket, WebSocketError, WebSocketMessage, WebSocketUpgrade, WebSocketUpgradeError,
    };
}