pub struct RawRule {
pub name: String,
pub listen: Vec<ListenSpec>,
pub match_predicate: Option<Predicate>,
pub middleware_chain: Vec<MiddlewareRef>,
pub terminate: TerminateSpec,
pub tls: Option<TlsConfig>,
pub allow_zero_rtt: Option<bool>,
pub max_body_bytes_request: usize,
pub max_body_bytes_response: usize,
pub source: SourceInfo,
}Fields§
§name: String§listen: Vec<ListenSpec>§match_predicate: Option<Predicate>§middleware_chain: Vec<MiddlewareRef>§terminate: TerminateSpec§tls: Option<TlsConfig>Optional TLS termination config. When set, the listener wraps
each accepted TCP stream in a rustls server-side handshake
before driving the L7 sub-graph; cleartext sockets get
Box<dyn AsyncReadWrite> instead of raw TcpStream.
lower_port enforces consistency: every rule on the same
listener must agree on tls (all None or all the same
Some(_)); L4-only listeners cannot carry TLS (terminate +
re-emit cleartext is not a useful proxy shape — it leaks the
upstream traffic).
allow_zero_rtt: Option<bool>Per-rule TLS 1.3 0-RTT (early data) acceptance. Required on
every rule whose listener is TLS-terminating L7; absent on
rules whose listener is plaintext or pure-L4 (a present value
in those positions is a compile error). See
spec/crates/engine-tls.md § TLS 1.3 0-RTT (early data).
max_body_bytes_request: usizeMaximum bytes to buffer for request body LazyBuffer collection.
Default 8 MiB. Exceeding this produces 413 Payload Too Large.
max_body_bytes_response: usizeMaximum bytes to buffer for response body LazyBuffer collection.
Default 8 MiB. Exceeding this produces 502 Bad Gateway.
source: SourceInfo