fastly 0.12.0

Fastly Compute API
Documentation
//! Compute HTTP interfaces.

pub mod body;
pub(crate) mod cache;
pub(crate) mod lazy_handle;
pub mod purge;
#[macro_use]
pub(crate) mod response;
pub(crate) mod candidate_response;
pub mod request;
pub mod serve;

pub use ::http::{Method, StatusCode, Version};
#[doc(inline)]
pub use body::Body;
pub use candidate_response::CandidateResponse;
pub use fastly_shared::{FramingHeadersMode, HttpKeepaliveMode};
pub use header::{HeaderName, HeaderValue};
pub(crate) use lazy_handle::{HandleField, LazyHandle};
pub use request::Request;
pub use response::Response;

pub use url::Url;

/// HTTP header names, values, and constants for standardized header names.
pub mod header {
    pub use ::http::header::{
        HeaderName, HeaderValue, InvalidHeaderName, InvalidHeaderValue, ToStrError, ACCEPT,
        ACCEPT_CHARSET, ACCEPT_ENCODING, ACCEPT_LANGUAGE, ACCEPT_RANGES,
        ACCESS_CONTROL_ALLOW_CREDENTIALS, ACCESS_CONTROL_ALLOW_HEADERS,
        ACCESS_CONTROL_ALLOW_METHODS, ACCESS_CONTROL_ALLOW_ORIGIN, ACCESS_CONTROL_EXPOSE_HEADERS,
        ACCESS_CONTROL_MAX_AGE, ACCESS_CONTROL_REQUEST_HEADERS, ACCESS_CONTROL_REQUEST_METHOD, AGE,
        ALLOW, ALT_SVC, AUTHORIZATION, CACHE_CONTROL, CONNECTION, CONTENT_DISPOSITION,
        CONTENT_ENCODING, CONTENT_LANGUAGE, CONTENT_LENGTH, CONTENT_LOCATION, CONTENT_RANGE,
        CONTENT_SECURITY_POLICY, CONTENT_SECURITY_POLICY_REPORT_ONLY, CONTENT_TYPE, COOKIE, DATE,
        DNT, ETAG, EXPECT, EXPIRES, FORWARDED, FROM, HOST, IF_MATCH, IF_MODIFIED_SINCE,
        IF_NONE_MATCH, IF_RANGE, IF_UNMODIFIED_SINCE, LAST_MODIFIED, LINK, LOCATION, MAX_FORWARDS,
        ORIGIN, PRAGMA, PROXY_AUTHENTICATE, PROXY_AUTHORIZATION, PUBLIC_KEY_PINS,
        PUBLIC_KEY_PINS_REPORT_ONLY, RANGE, REFERER, REFERRER_POLICY, REFRESH, RETRY_AFTER,
        SEC_WEBSOCKET_ACCEPT, SEC_WEBSOCKET_EXTENSIONS, SEC_WEBSOCKET_KEY, SEC_WEBSOCKET_PROTOCOL,
        SEC_WEBSOCKET_VERSION, SERVER, SET_COOKIE, STRICT_TRANSPORT_SECURITY, TE, TRAILER,
        TRANSFER_ENCODING, UPGRADE, UPGRADE_INSECURE_REQUESTS, USER_AGENT, VARY, VIA, WARNING,
        WWW_AUTHENTICATE, X_CONTENT_TYPE_OPTIONS, X_DNS_PREFETCH_CONTROL, X_FRAME_OPTIONS,
        X_XSS_PROTECTION,
    };

    /// RFC8586: Loop Detection in Content Delivery Networks
    pub const CDN_LOOP: HeaderName = HeaderName::from_static("cdn-loop");

    pub(crate) mod fastly {
        use http::{HeaderName, HeaderValue};

        pub const FASTLY_DEBUG: HeaderName = HeaderName::from_static("fastly-debug");
        pub const FASTLY_FF: HeaderName = HeaderName::from_static("fastly-ff");
        pub const SURROGATE_CONTROL: HeaderName = HeaderName::from_static("surrogate-control");
        pub const SURROGATE_KEY: HeaderName = HeaderName::from_static("surrogate-key");
        pub const X_CACHE: HeaderName = HeaderName::from_static("x-cache");
        pub const X_CACHE_HITS: HeaderName = HeaderName::from_static("x-cache-hits");

        pub const VAL_0: HeaderValue = HeaderValue::from_static("0");
        pub const VAL_HIT: HeaderValue = HeaderValue::from_static("HIT");
        pub const VAL_MISS: HeaderValue = HeaderValue::from_static("MISS");
    }
}

// Constants for internal use when invoking hostcalls with adaptive buffer size behavior.
pub(crate) const INITIAL_HEADER_NAME_BUF_SIZE: usize = 128;
pub(crate) const INITIAL_HEADER_VALUE_BUF_SIZE: usize = 4096;
pub(crate) const INITIAL_METHOD_BUF_SIZE: usize = 8;
pub(crate) const INITIAL_URL_BUF_SIZE: usize = 4096;