Skip to content

lmineiro/skipper

 
 

Repository files navigation

Build Status

Skipper

Skipper is an HTTP router that acts as a reverse proxy (with support for flexible route definitions), alters requests and responses with filters. You can use it out of the box and add your own custom filters and predicates. Here's what it does:

  • identifies routes based on the requests' properties, such as path, method, host and headers
  • routes each request to the configured server endpoint
  • allows alteration of requests and responds with filters that are independently configured for each route
  • optionally acts as a final endpoint (shunt)
  • updates the routing rules without restarting, while supporting multiple types of data sources — including Innkeeper, etcd and static files

Skipper's design is largely inspired by Vulcand.

Quickstart

Skipper is 'go get' compatible. If needed, create a go workspace first:

mkdir ws
cd ws
export GOPATH=$(pwd)
export PATH=$PATH:$GOPATH/bin

Get the Skipper packages:

go get github.com/zalando/skipper/...

Create a file with a route:

echo 'hello: Path("/hello") -> "https://www.example.org"' > example.eskip

Optionally, verify the file's syntax:

eskip check example.eskip

Start Skipper and make an HTTP request through skipper:

skipper -routes-file example.eskip &
curl localhost:9090/hello

Documentation

Skipper is documented in detail in godoc: https://godoc.org/github.com/zalando/skipper

Compiling

Getting the code (optionally, you can create a workspace):

mkdir ws
cd ws
export GOPATH=$(pwd)
export PATH=$PATH:$GOPATH/bin
go get -t github.com/zalando/skipper

Build:

cd src/github.com/zalando/skipper
go install ./cmd/skipper

Test:

go test ./...

Contributing

We welcome contributions to this project.

License

Copyright 2015 Zalando SE

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

Skipper is an HTTP router acting as a reverse proxy with support for custom route definitions

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.2%
  • Yacc 0.8%