Crate pingora

source ·
Expand description

§Pingora

Pingora is a framework to build fast, reliable and programmable networked systems at Internet scale.

§Features

  • Http 1.x and Http 2
  • Modern TLS with OpenSSL or BoringSSL (FIPS compatible)
  • Zero downtime upgrade

§Usage

This crate provides low level service and protocol implementation and abstraction.

If looking to build a (reverse) proxy, see pingora-proxy crate.

§features

  • openssl: Using OpenSSL as the internal TLS backend. This feature is default on.
  • boringssl: Switch the internal TLS library from OpenSSL to BoringSSL. This feature will disable openssl.
  • proxy: This feature will include and export pingora_proxy::prelude::*.
  • lb: This feature will include and export pingora_load_balancing::prelude::*.
  • cache: This feature will include and export pingora_cache::prelude::*.

Modules§

  • The abstraction and implementation interface for service application logic
  • cachecache
    Caching services and tooling
  • Connecting to servers
  • HTTP header objects that preserve http header cases
  • lblb
    Load balancing recipes
  • The listening endpoints (TCP and TLS) and their configurations.
  • Modules to extend the functionalities of pingora services.
  • A useful set of types for getting started
  • Abstractions and implementations for protocols including TCP, TLS and HTTP
  • proxyproxy
    Proxying recipes
  • Server process and configuration management
  • The service interface
  • The BoringSSL API compatibility layer.
  • The interface to connect to a remote server
  • This module contains various types that make it easier to work with bytes and X509 certificates.

Structs§

  • The struct that represents an error

Enums§

  • The source of the error
  • Predefined type of errors
  • A data struct that holds either immutable string or reference to static str. Compared to String or Box<str>, it avoids memory allocation on static str.
  • Whether the request can be retried after encountering this error

Traits§

  • Helper trait to add more context to a given error
  • Error is a trait representing the basic expectations for error values, i.e., values of type E in Result<T, E>.
  • Helper trait to chain errors with context

Type Aliases§