Coder Social home page Coder Social logo

skipper's Introduction

Build Status GoDoc License Go Report Card

Skipper

Skipper

Skipper is an HTTP router built on top of a reverse proxy with the ability to modifying requests and responses with filters. You can use it out of the box or add your own custom filters and predicates.

What Skipper Does

  • identifies routes based on the requests' properties, such as path, method, host and headers
  • routes each request to the configured server endpoint
  • allows modification 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 etcd, Innkeeper and static files

Skipper provides a default executable command with a few built-in filters, however, its primary use case is to be extended with custom filters, predicates or data sources. See more in the Documentation

Inspiration

Skipper's design is largely inspired by Vulcand.

Getting Started

Prerequisites/Requirements

In order to build and run Skipper, only the latest version of Go needs to be installed.

Skipper can use Innkeeper or Etcd as data sources for routes. See more details in the Documentation.

Installation

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/...

Running

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:

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

Working with the code

Getting the code with the test dependencies (-t switch):

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

Build all packages:

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

Test all packages:

go test ./...

Documentation

Skipper's godoc page includes detailed information on these topics:

  • The Routing Mechanism
  • Matching Requests
  • Filters - Augmenting Requests
  • Service Backends
  • Route Definitions
  • Data Sources
  • Extending It with Customized Predicates, Filters, and Builds
  • Proxy Packages
  • Logging and Metrics
  • Performance Considerations

skipper's People

Contributors

aryszka avatar danpersa avatar mo-gr avatar ewgra avatar lmineiro avatar lappleapple avatar alexanderbh avatar kolja avatar raffo avatar readmecritic avatar

Watchers

Flemming Pedersen avatar  avatar Rasmus Høhndorf Hummelmose avatar James Cloos avatar  avatar Kasper Bentsen avatar Uffe Sørensen avatar Bitrise CI avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.