Adding a Built-in Filter
Review the HTTP filter tutorial and extensions guide first.
PRAXIS / v0.7.2 DOCUMENTATION
Install, configure, and operate this release. Explore filters, architecture, and exact settings when you need them.
Praxis is a high-performance, security-first proxy framework with a composable filter pipeline for routing, load balancing, and security. AI Gateway docs live in praxis-ai overview.
PRAXIS_REQUIRE_FIPS, verifying a deploymentReview the HTTP filter tutorial and extensions guide first.
Protocols translate between external network protocols and the internal filter pipeline.
How Praxis combines protocol handling, filter pipelines, and upstream binding to build a configurable proxy.
Praxis benchmark suites measure proxy throughput and latency alongside the cost of filter pipeline operations.
How body chunks flow through the filter pipeline, how delivery modes interact, and how size limits layer.
Praxis is composed at build time with Cargo features.
Estimate file descriptor use from client and upstream connections, subrequests, DNS lookups, and configured connection limits before deployment.
Configure listeners, filter chains, upstream clusters, limits, administration, and runtime behavior with Praxis’s YAML file.
Follow a client connection through accept, TLS setup, HTTP decoding, filter execution, and response delivery.
praxis : Binary entry point. Loads YAML config, resolves per-listener filter chains into pipelines, registers protocol handlers, starts the server.
This document lists the criteria that matter most when deeply analyzing the Praxis codebase to find improvements.
Praxis keeps its dependency tree small, pinned, and auditable. This page documents the policy, the enforcement tooling, and a provenance review of every direct workspace dependency.
default unit of organization. Split code into small files with focused responsibilities.
Browse 128 tracked YAML configurations for Praxis, organized by task and setup needs.
general-purpose provided builds, or extend your own custom proxy server using the Praxis framework.
Filters are the core processing units in Praxis. Each filter is a small (preferably), composable function that inspects or transforms traffic at a single point in the request/response lifecycle.
Praxis does all of its cryptography in the system OpenSSL library.
Local checks that a praxis build is on track for FIPS 140-3 on Red Hat Enterprise Linux.
signature verification and Red Hat’s scanner need Podman on Linux)
Praxis monitors upstream endpoint availability using active probes and passive observation. Unhealthy endpoints are automatically removed from load balancer rotation and restored when they recover.
A proxy must enforce HTTP invariants that upstream servers and downstream clients may not. These are critical correctness and security concerns.
This document traces a single HTTP request from arrival to response through the Praxis proxy.
Praxis distributes requests across upstream endpoints using configurable load-balancing strategies.
Praxis exposes Prometheus metrics, structured access logs, and health endpoints for monitoring proxy behavior. This guide covers setup, metric reference, logging configuration, and usage patterns.
Filters declare body access needs at construction time via request_body_access(), response_body_access(), and the corresponding _body_mode() methods.
This document describes how Praxis implements Pingora’s ProxyHttp trait to bridge the hook-based HTTP lifecycle into the Praxis filter pipeline.
This document covers the pipeline system: how YAML configuration becomes a running filter pipeline, how filters communicate, and how conditional branching works.
All repositories in the praxis-proxy organization use a consistent workflow for planning, prioritizing, and tracking work.
Build Praxis from source for local development, then route a request to an upstream backend.
Praxis uses Semantic Versioning. The workspace version is the single source of truth, defined in workspace.package.version in the root Cargo.toml. All workspace crates inherit this version.
Security is a primary motivation of Praxis, not an afterthought. This guide covers the secure defaults and operational hardening for production deployments.
Design of the raw TCP/L4 bidirectional forwarding protocol adapter.
Configure downstream and upstream TLS for common listener and backend scenarios.
Make invalid states unrepresentable. The type system and serde should enforce constraints at parse time, not at runtime.
A logical upstream binding pins one cluster to a request for the whole downstream request, so later filters can act on that cluster without running a second router.