zalando/skipper

An HTTP router and reverse proxy for service composition, including use cases like Kubernetes Ingress

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 28 minutes ago
Added to GitGenius on September 20th, 2026
Created on July 9th, 2015
Open Issues & Pull Requests: 306 (+1)
GitHub issues: Enabled
Number of forks: 407
Total Stargazers: 3,326 (+0)
Total Subscribers: 67 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 62
New in 7 days: 0
Closed in 7 days: 9
Avg open age: 707 days
Stale 30+ days: 51
Stale 90+ days: 42

Recent activity

Opened in 7 days: 0
Closed in 7 days: 8
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • enhancement (39)
  • flakytest (31)
  • good first issue (18)
  • bug (16)
  • help wanted (16)
  • documentation (10)
  • kubernetes (8)
  • open-policy-agent (8)

Detailed Description

Skipper is an HTTP router and reverse proxy for service composition that can handle over 300,000 route definitions with detailed lookup conditions and flexible request augmentation through filters.

The tool solves the problem of routing HTTP traffic across distributed services while maintaining high performance and flexibility. It identifies routes based on request properties such as path, method, host, and headers, then applies filters to modify requests and responses independently for each route. Skipper streams incoming requests and backend responses simultaneously and can update routing rules without downtime by pulling configuration from multiple sources including etcd, Kubernetes Ingress resources, static files, and custom data sources. It can also act as a final endpoint for static file serving or mock backends.

Skipper suits organizations running Kubernetes clusters that need a powerful ingress controller with advanced routing capabilities beyond basic path and host matching. It works well for teams that require custom filters, predicates, or data sources since the tool is designed primarily for extension through Go code. The project includes built-in support for HTTP/1.1, HTTP/2, and H2C, along with features like cluster rate limiting, authentication and authorization without external dependencies, and tiered caching. It ships with eskip, a descriptive configuration language for routing rules, plus additional utilities like routesrv for reducing kube-apiserver load and a Kubernetes validation webhook.

The project maintains steady development activity with regular updates to core functionality and documentation. The maintainers actively support multiple deployment patterns and data sources, indicating responsiveness to different operational needs. The codebase includes comprehensive examples and plugins that demonstrate extension patterns, suggesting the team values practical guidance for customization. Development focuses on production-grade features like cluster rate limiting and remote storage support for caching and certificate management.