/spike

Implementing a packet level software network load balancer

Primary LanguageLuaMIT LicenseMIT

Spike: A Software Network Load Balancer

Spike runs on commodity Linux servers and is based on Google's network load balancer, Maglev.

Dependencies

Building

  • Make sure that your go workspace is set up properly, and that the spike repository is in $GOPATH/src/github.com/sipb/spike.
  • Clone and build the snabb repository. (This is unlikely to work on non-Linux operating systems.)
  • Run go get github.com/dchest/siphash github.com/stretchr/testify gopkg.in/yaml.v2.
  • Run make.

It should now be possible to run the health check demo (bin/demo), as well as the snabb integration demo (bin/runspike). runspike should be run as root and requires two environment variables, SNABB set to the path to the snabb executable and SPIKE set to the path to the folder, so you might run something like:

sudo env SNABB=/path/to/snabb SPIKE=/path/to/spike bin/runspike

You can run the tests with make test.

Contributing

Contributing guidelines are here.

Copyright

Spike is available under the MIT License. See the LICENSE file for more details.

maglev was adapted from dgryski/go-maglev, which is used under the terms of the MIT License, and kkdai/maglev, which is used under the terms of the Apache License version 2.0.