Cargo Features

Pingora has no features set by default.

[dependencies]
pingora = { version = "0.4.0", features = ["openssl", "boringssl", "rustls", "proxy", "lb", "cache", "time", "sentry", "openssl_derived", "any_tls", "patched_http1", "document-features"] }
openssl = openssl_derived

Tls

Tls is provided by adding one of these features. If no tls-providing feature is added, only unencrypted http. Only one tls-providing feature can be selected at a time

Use OpenSSL for tls

Requires native openssl libraries and build tooling

Enables openssl of optional pingora-cache, pingora-core, optional pingora-load-balancing, and optional pingora-proxy

boringssl = openssl_derived

Use BoringSSL for tls

Requires native boring libraries and build tooling

Enables boringssl of optional pingora-cache, pingora-core, optional pingora-load-balancing, and optional pingora-proxy

rustls = any_tls

Use rustls for tls

⚠️ Highly Experimental! ⚠️ Try it, but don't rely on it (yet)

Enables rustls of optional pingora-cache, pingora-core, optional pingora-load-balancing, and optional pingora-proxy

proxy document-features? lb? = pingora-proxy

Pingora extensions

Include the proxy module

This feature will include and export pingora_proxy::prelude::*

Affects pingora::proxy

lb document-features? = pingora-load-balancing, proxy

Include the lb (load-balancing) module

This feature will include and export pingora_load_balancing::prelude::*

Affects pingora::lb

cache document-features? = pingora-cache

Include the cache module

This feature will include and export pingora_cache::prelude::*

Affects pingora::cache

time document-features?

Enable time/scheduling functionality

Affects pingora::time

sentry document-features?

Enable sentry for error notifications

Enables sentry of pingora-core

openssl_derived boringssl? openssl? = any_tls

These features are intentionally not documented

any_tls openssl_derived? rustls?
patched_http1

Enables patched_http1 of pingora-core

document-features = cache, lb, proxy, sentry, time

Enables document-features

Only used for documenting features, but doesn't work in any other dependency group :(

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

pingora-load-balancing lb?
pingora-proxy proxy?
pingora-cache cache?