vulcand

command module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2014 License: Apache-2.0 Imports: 5 Imported by: 0

README

News

Upcoming changes: https://github.com/mailgun/vulcand/pull/136

Vulcand

Vulcand is a programmatic extendable proxy for microservices and API management. It is inspired by Hystrix and powers Mailgun microservices infrastructure.

What it's not

It's not general-purpose reverse proxy - it is focused on microservices and API use-cases.

Features

  • Uses Etcd as a configuration backend.
  • API and command line tool.
  • Pluggable middlewares.
  • Support for canary deploys, realtime metrics and resiliency.

Vulcan diagram

Project info

documentation https://www.vulcanproxy.com
status Used in production@Mailgun on moderate workloads. Under active development.
blog http://blog.vulcanproxy.com
discussions https://groups.google.com/d/forum/vulcan-proxy
roadmap roadmap.md

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Godeps
_workspace/src/code.google.com/p/go.crypto/nacl/secretbox
Package secretbox encrypts and authenticates small messages.
Package secretbox encrypts and authenticates small messages.
_workspace/src/code.google.com/p/go.crypto/poly1305
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
Package poly1305 implements Poly1305 one-time message authentication code as specified in http://cr.yp.to/mac/poly1305-20050329.pdf.
_workspace/src/code.google.com/p/go.crypto/salsa20/salsa
Package salsa provides low-level access to functions in the Salsa family.
Package salsa provides low-level access to functions in the Salsa family.
_workspace/src/github.com/buger/goterm
Provides basic bulding blocks for advanced console UI Coordinate system: 1/1---X----> | Y | v Documentation for ANSI codes: http://en.wikipedia.org/wiki/ANSI_escape_code#Colors Inspired by: http://www.darkcoding.net/software/pretty-command-line-console-output-on-unix-in-python-and-go-lang/
Provides basic bulding blocks for advanced console UI Coordinate system: 1/1---X----> | Y | v Documentation for ANSI codes: http://en.wikipedia.org/wiki/ANSI_escape_code#Colors Inspired by: http://www.darkcoding.net/software/pretty-command-line-console-output-on-unix-in-python-and-go-lang/
_workspace/src/github.com/codahale/hdrhistogram
Package hdrhistogram provides an implementation of Gil Tene's HDR Histogram data structure.
Package hdrhistogram provides an implementation of Gil Tene's HDR Histogram data structure.
_workspace/src/github.com/codegangsta/cli
Package cli provides a minimal framework for creating and organizing command line Go applications.
Package cli provides a minimal framework for creating and organizing command line Go applications.
_workspace/src/github.com/gorilla/context
Package gorilla/context stores values shared during a request lifetime.
Package gorilla/context stores values shared during a request lifetime.
_workspace/src/github.com/gorilla/mux
Package gorilla/mux implements a request router and dispatcher.
Package gorilla/mux implements a request router and dispatcher.
_workspace/src/github.com/mailgun/manners
Package manners provides a wrapper for a standard net/http server that ensures all active HTTP client have completed their current request before the server shuts down.
Package manners provides a wrapper for a standard net/http server that ensures all active HTTP client have completed their current request before the server shuts down.
_workspace/src/github.com/mailgun/predicate
Predicate package used to create interpreted mini languages with Go syntax - mostly to define various predicates for configuration, e.g.
Predicate package used to create interpreted mini languages with Go syntax - mostly to define various predicates for configuration, e.g.
_workspace/src/github.com/mailgun/route
package route provides http package-compatible routing library.
package route provides http package-compatible routing library.
_workspace/src/github.com/mailgun/vulcan
This package contains the reverse proxy that implements http.HandlerFunc
This package contains the reverse proxy that implements http.HandlerFunc
_workspace/src/github.com/mailgun/vulcan/circuitbreaker
Circuit breakers start in the Standby state first, observing responses and watching location metrics.
Circuit breakers start in the Standby state first, observing responses and watching location metrics.
_workspace/src/github.com/mailgun/vulcan/endpoint
Endpoints - final destination of the http request
Endpoints - final destination of the http request
_workspace/src/github.com/mailgun/vulcan/errors
Utility functions for producing errorneous http responses
Utility functions for producing errorneous http responses
_workspace/src/github.com/mailgun/vulcan/headers
Constants with common HTTP headers
Constants with common HTTP headers
_workspace/src/github.com/mailgun/vulcan/limit
Interfaces for request limiting
Interfaces for request limiting
Simultaneous connection limiter
_workspace/src/github.com/mailgun/vulcan/limit/tokenbucket
Tokenbucket based request rate limiter
Tokenbucket based request rate limiter
_workspace/src/github.com/mailgun/vulcan/loadbalance
Load balancers control how requests are distributed among multiple endpoints.
Load balancers control how requests are distributed among multiple endpoints.
_workspace/src/github.com/mailgun/vulcan/loadbalance/roundrobin
Dynamic weighted round robin load balancer
Dynamic weighted round robin load balancer
_workspace/src/github.com/mailgun/vulcan/location
Interfaces for location - round trip the http request to backends
Interfaces for location - round trip the http request to backends
_workspace/src/github.com/mailgun/vulcan/location/httploc
HTTP location with load balancing and pluggable middlewares
HTTP location with load balancing and pluggable middlewares
_workspace/src/github.com/mailgun/vulcan/metrics
In memory request performance metrics
In memory request performance metrics
_workspace/src/github.com/mailgun/vulcan/middleware
Middlewares can modify or intercept requests and responses
Middlewares can modify or intercept requests and responses
Network related utilities
_workspace/src/github.com/mailgun/vulcan/request
Wrapper around http.Request with additional features
Wrapper around http.Request with additional features
_workspace/src/github.com/mailgun/vulcan/route
Route the request to a location
Route the request to a location
_workspace/src/github.com/mailgun/vulcan/route/exproute
see http://godoc.org/github.com/mailgun/route for documentation on the language
see http://godoc.org/github.com/mailgun/route for documentation on the language
Route the request by hostname
Route the request by path
_workspace/src/github.com/mailgun/vulcan/template
Package template consolidates various templating utilities used throughout different parts of vulcan.
Package template consolidates various templating utilities used throughout different parts of vulcan.
_workspace/src/github.com/mailgun/vulcan/threshold
Package threshold contains predicates that can define various request thresholds Examples: * RequestMethod() == "GET" triggers action when request method equals "GET" * IsNetworkError() - triggers action on network errors * RequestMethod() == "GET" && Attempts <= 2 && (IsNetworkError() || ResponseCode() == 408) This predicate triggers for GET requests with maximum 2 attempts on network errors or when upstream returns special http response code 408
Package threshold contains predicates that can define various request thresholds Examples: * RequestMethod() == "GET" triggers action when request method equals "GET" * IsNetworkError() - triggers action on network errors * RequestMethod() == "GET" && Attempts <= 2 && (IsNetworkError() || ResponseCode() == 408) This predicate triggers for GET requests with maximum 2 attempts on network errors or when upstream returns special http response code 408
_workspace/src/gopkg.in/check.v1
Package check is a rich testing extension for Go's testing package.
Package check is a rich testing extension for Go's testing package.
Package backend defines interfaces and structures controlling the proxy configuration and changes.
Package backend defines interfaces and structures controlling the proxy configuration and changes.
etcdbackend
Etcd implementation of the backend, where all vulcand properties are implemented as directories or keys.
Etcd implementation of the backend, where all vulcand properties are implemented as directories or keys.
membackend
Provides in memory backend implementation, mostly used for test purposes
Provides in memory backend implementation, mostly used for test purposes
registry
This file will be generated to include all customer specific middlewares
This file will be generated to include all customer specific middlewares
This is a home of system tests of vulcan daemon.
This is a home of system tests of vulcan daemon.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL