<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Praxis Documentation on Praxis</title><link>https://praxis.fast/praxis/v0.7.2/</link><description>Recent content in Praxis Documentation on Praxis</description><generator>Hugo</generator><language>en</language><atom:link href="https://praxis.fast/praxis/v0.7.2/index.xml" rel="self" type="application/rss+xml"/><item><title>Adding a Built-in Filter</title><link>https://praxis.fast/praxis/v0.7.2/developing/adding-filters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/adding-filters/</guid><description>Review the HTTP filter tutorial and extensions guide first.</description></item><item><title>Adding a Protocol</title><link>https://praxis.fast/praxis/v0.7.2/developing/adding-protocols/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/adding-protocols/</guid><description>Protocols translate between external network protocols and the internal filter pipeline.</description></item><item><title>Architecture Overview</title><link>https://praxis.fast/praxis/v0.7.2/architecture/overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/overview/</guid><description>How Praxis combines protocol handling, filter pipelines, and upstream binding to build a configurable proxy.</description></item><item><title>Benchmarks</title><link>https://praxis.fast/praxis/v0.7.2/benchmarks/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/benchmarks/</guid><description>Praxis benchmark suites measure proxy throughput and latency alongside the cost of filter pipeline operations.</description></item><item><title>Body Buffering and StreamBuffer</title><link>https://praxis.fast/praxis/v0.7.2/architecture/body-buffering/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/body-buffering/</guid><description>How body chunks flow through the filter pipeline, how delivery modes interact, and how size limits layer.</description></item><item><title>Build features</title><link>https://praxis.fast/praxis/v0.7.2/operating/build-features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/build-features/</guid><description>Praxis is composed at build time with Cargo features.</description></item><item><title>Capacity Planning: File Descriptors</title><link>https://praxis.fast/praxis/v0.7.2/operating/capacity-planning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/capacity-planning/</guid><description>Estimate file descriptor use from client and upstream connections, subrequests, DNS lookups, and configured connection limits before deployment.</description></item><item><title>Configuration</title><link>https://praxis.fast/praxis/v0.7.2/operating/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/configuration/</guid><description>Configure listeners, filter chains, upstream clusters, limits, administration, and runtime behavior with Praxis’s YAML file.</description></item><item><title>Connection Lifecycle</title><link>https://praxis.fast/praxis/v0.7.2/architecture/connection-lifecycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/connection-lifecycle/</guid><description>Follow a client connection through accept, TLS setup, HTTP decoding, filter execution, and response delivery.</description></item><item><title>Crate Layout</title><link>https://praxis.fast/praxis/v0.7.2/architecture/crate-layout/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/crate-layout/</guid><description>praxis : Binary entry point. Loads YAML config, resolves per-listener filter chains into pipelines, registers protocol handlers, starts the server.</description></item><item><title>Deep Review Criteria</title><link>https://praxis.fast/praxis/v0.7.2/developing/review-criteria/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/review-criteria/</guid><description>This document lists the criteria that matter most when deeply analyzing the Praxis codebase to find improvements.</description></item><item><title>Dependency Policy &amp; Review</title><link>https://praxis.fast/praxis/v0.7.2/developing/dependencies/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/dependencies/</guid><description>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.</description></item><item><title>Development Conventions</title><link>https://praxis.fast/praxis/v0.7.2/developing/conventions/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/conventions/</guid><description>default unit of organization. Split code into small files with focused responsibilities.</description></item><item><title>Features</title><link>https://praxis.fast/praxis/v0.7.2/features/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/features/</guid><description>general-purpose provided builds, or extend your own custom proxy server using the Praxis framework.</description></item><item><title>FIPS 140-3</title><link>https://praxis.fast/praxis/v0.7.2/operating/fips/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/fips/</guid><description>Praxis does all of its cryptography in the system OpenSSL library.</description></item><item><title>FIPS Tooling</title><link>https://praxis.fast/praxis/v0.7.2/developing/fips/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/fips/</guid><description>Local checks that a praxis build is on track for FIPS 140-3 on Red Hat Enterprise Linux.</description></item><item><title>Getting Started</title><link>https://praxis.fast/praxis/v0.7.2/developing/getting-started/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/getting-started/</guid><description>signature verification and Red Hat&amp;rsquo;s scanner need Podman on Linux)</description></item><item><title>Health Checking</title><link>https://praxis.fast/praxis/v0.7.2/operating/health-checking/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/health-checking/</guid><description>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.</description></item><item><title>HTTP Correctness</title><link>https://praxis.fast/praxis/v0.7.2/architecture/http-correctness/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/http-correctness/</guid><description>A proxy must enforce HTTP invariants that upstream servers and downstream clients may not. These are critical correctness and security concerns.</description></item><item><title>Life of a Request</title><link>https://praxis.fast/praxis/v0.7.2/architecture/life-of-a-request/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/life-of-a-request/</guid><description>This document traces a single HTTP request from arrival to response through the Praxis proxy.</description></item><item><title>Load Balancing</title><link>https://praxis.fast/praxis/v0.7.2/operating/load-balancing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/load-balancing/</guid><description>Praxis distributes requests across upstream endpoints using configurable load-balancing strategies.</description></item><item><title>Observability</title><link>https://praxis.fast/praxis/v0.7.2/operating/observability/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/observability/</guid><description>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.</description></item><item><title>Payload Processing</title><link>https://praxis.fast/praxis/v0.7.2/architecture/payload-processing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/payload-processing/</guid><description>Filters declare body access needs at construction time via request_body_access(), response_body_access(), and the corresponding _body_mode() methods.</description></item><item><title>Pingora Handler Lifecycle</title><link>https://praxis.fast/praxis/v0.7.2/architecture/pingora-handler-lifecycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/pingora-handler-lifecycle/</guid><description>This document describes how Praxis implements Pingora&amp;rsquo;s ProxyHttp trait to bridge the hook-based HTTP lifecycle into the Praxis filter pipeline.</description></item><item><title>Pipeline Concepts</title><link>https://praxis.fast/praxis/v0.7.2/architecture/pipeline-concepts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/pipeline-concepts/</guid><description>This document covers the pipeline system: how YAML configuration becomes a running filter pipeline, how filters communicate, and how conditional branching works.</description></item><item><title>Project Management</title><link>https://praxis.fast/praxis/v0.7.2/developing/project-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/project-management/</guid><description>All repositories in the praxis-proxy organization use a consistent workflow for planning, prioritizing, and tracking work.</description></item><item><title>Quickstart</title><link>https://praxis.fast/praxis/v0.7.2/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/quickstart/</guid><description>Build Praxis from source for local development, then route a request to an upstream backend.</description></item><item><title>Release Process</title><link>https://praxis.fast/praxis/v0.7.2/release/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/release/</guid><description>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.</description></item><item><title>Security Hardening Guide</title><link>https://praxis.fast/praxis/v0.7.2/operating/security-hardening/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/security-hardening/</guid><description>Security is a primary motivation of Praxis, not an afterthought. This guide covers the secure defaults and operational hardening for production deployments.</description></item><item><title>TCP Proxy</title><link>https://praxis.fast/praxis/v0.7.2/architecture/tcp-proxy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/tcp-proxy/</guid><description>Design of the raw TCP/L4 bidirectional forwarding protocol adapter.</description></item><item><title>TLS</title><link>https://praxis.fast/praxis/v0.7.2/operating/tls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/operating/tls/</guid><description>Configure downstream and upstream TLS for common listener and backend scenarios.</description></item><item><title>Type Design</title><link>https://praxis.fast/praxis/v0.7.2/developing/type-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/developing/type-design/</guid><description>Make invalid states unrepresentable. The type system and serde should enforce constraints at parse time, not at runtime.</description></item><item><title>Upstream Binding</title><link>https://praxis.fast/praxis/v0.7.2/architecture/upstream-binding/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://praxis.fast/praxis/v0.7.2/architecture/upstream-binding/</guid><description>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.</description></item></channel></rss>