Skip to main content
Version: 0.11.1

Why Snakeway Exists

The landscape of reverse proxies and API gateways is vast, ranging from simple, battle-tested tools like nginx to massive, service-mesh architectures like Envoy and Istio. Snakeway exists to fill the gap between these two extremes.

The Problem: Power vs. Complexity​

When teams need to add custom logic to their edge (.e.g., request enrichment, custom access rules, or complex observability), they often face a challenging choice:

  1. Simple Proxies: Fast and reliable, but extending them often requires writing C modules or using limited scripting languages (like Lua), which can be challenging to test and maintain.
  2. Heavy Gateways: Incredibly powerful, but often come with massive operational overhead, complex DSLs, and a "black box" nature that makes debugging difficult.

The Snakeway Approach​

Snakeway was built on a different set of priorities.

Programmability​

By using Rust and WASM, Snakeway allows developers to write, test, and deploy complex traffic logic using modern tools and workflows.

Deterministic Pipeline​

The order of operations should be explicit and easy to reason about.

Snakeway's linear device pipeline eliminates the "magic" of middleware.

Simplicity​

Understanding other technologies is not a prerequisite to using Snakeway.

You do not need to know about Lua, Helm, Kubernetes, Terraform, or anything else.

Operator Experience​

The directory-based configuration and modular design are built for humans, not just machines.

The HCL configuration language was carefully selected for its simplicity, expressiveness, and ubiquity in the ops-space.

CLI commands allow for generating and inspecting configs.

Native Performance​

Built on Pingora and Rust, Snakeway delivers the performance required for high-traffic environments without compromising on safety or extensibility.