Source repo for Docker's Documentation
Go to file
John Hopper b44dba9051 Add a Rackspace Cloud backend based on Gophercloud https://github.com/rackspace/gophercloud.
Signed-off-by: John Hopper john.hopper@jpserver.net
[solomon@docker.com: manually resolved conflicts]
Signed-off-by: Solomon Hykes <solomon@docker.com>
2014-06-09 05:51:54 +00:00
backends Add a Rackspace Cloud backend based on Gophercloud https://github.com/rackspace/gophercloud. 2014-06-09 05:51:54 +00:00
beam Merge pull request #49 from smarterclayton/add_websocket_server 2014-06-07 21:02:54 -07:00
dockerclient Implement Get on containers 2014-06-07 10:56:11 -07:00
swarmd Add a Rackspace Cloud backend based on Gophercloud https://github.com/rackspace/gophercloud. 2014-06-09 05:51:54 +00:00
.gitignore Add .gitignore 2014-05-01 16:29:39 -07:00
.mailmap Add mailmap and authors. 2014-06-03 12:04:02 -05:00
AUTHORS Add mailmap and authors. 2014-06-03 12:04:02 -05:00
LICENSE Add LICENSE and NOTICE 2014-05-16 17:53:39 -07:00
MAINTAINERS Initial commit 2014-05-01 16:13:41 -07:00
NOTICE Add LICENSE and NOTICE 2014-05-16 17:53:39 -07:00
README.md Small README fixes 2014-06-06 21:41:09 -07:00

README.md

Libswarm

A minimalist toolkit to compose network services

libswarm is a minimalist toolkit to compose network services.

It exposes a simple API for the following tasks:

  • Clustering: deploy services on pools of interchangeable machines
  • Composition: combine multiple services into higher-level services of arbitrary complexity - it's services all the way down!
  • Interconnection: services can reliably and securely communicate with each other using asynchronous message passing, request/response, or raw sockets.
  • Scale services can run concurrently in the same process using goroutines and channels; in separate processes on the same machines using high-performance IPC; on multiple machines in a local network; or across multiple datacenters.
  • Integration: incorporate your existing systems into your swarm. libswarm includes adapters to many popular infrastructure tools and services: docker, dns, mesos, etcd, fleet, deis, google compute, rackspace cloud, tutum, orchard, digital ocean, ssh, etc. Its very easy to create your own adapter: just clone the repository at

Adapters

Libswarm supports the following adapters:

Debug adapter

The debug backend simply catches all messages and prints them on the terminal for inspection.

Docker server adapter

Maintainer: Ben Firshman

Docker client adapter

Maintainer: Aanand Prasad

Pipeline adapter

Maintainer: Ben Firshman

Filter adapter

Maintainer: Solomon Hykes

Handler adapter

Maintainer: Solomon Hykes

Task adapter

Maintainer: Solomon Hykes

Go channel adapter

Maintainer: Solomon Hykes

CLI adapter

Maintainer: Solomon Hykes

Unix socket adapter

Maintainer: Solomon Hykes

TCP adapter (client and server)

Help wanted!

TLS adapter (client and server)

Help wanted!

HTTP2/SPDY adapter (client and server)

Maintainer: Derek McGowan

Etcd adapter

Help wanted!

Geard adapter

Clayton Coleman

Fork-exec adapter

Solomon Hykes

Mesos adapter

Help wanted!

Shipyard adapter

Brian Goff

Fleet adapter

Help wanted!

Google Compute adapter

Brendan Burns

Rackspace cloud adapter

John Hopper

EC2 adapter

Help wanted!

Consul adapter

Help wanted!

Openstack Nova adapter

Help wanted!

Digital Ocean adapter

Help wanted!

Softlayer adapter

Help wanted!

Zerorpc adapter

Help wanted!

Testing libswarm with swarmd

Libswarm ships with a simple daemon which can control all machines in your distributed system using a variety of backend adaptors, and exposes it on a single, unified endpoint.

Usage example:

Run swarmd without arguments to list available backends:

./swarmd

Pass a backend name as argument to load it:

./swarmd fakeclient

You can pass arguments to the backend, like a shell command:

./swarmd 'dockerserver tcp://localhost:4243'

You can call multiple backends. They will be executed in parallel, with the output of each backend connected to the input of the next, just like unix pipelines.

This allows for very powerful composition.

./swarmd 'dockerserver tcp://localhost:4243' 'debug' 'dockerclient unix:///var/run/docker.sock'

Creators

Solomon Hykes

Code and documentation copyright 2013-2014 Docker, inc. Code released under the Apache 2.0 license. Docs released under Creative commons.