Docker daemon API in Rust
Branch: master
Clone or download
Pull request Compare This branch is 56 commits ahead of ghmlee:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Fix missing comma Mar 31, 2018
.travis.yml ci: Remove travis-cargo, which is broken on OS X Jan 1, 2018 v0.0.41 Nov 11, 2015
Cargo.toml v0.0.50: Allow `Env` to be null Jan 1, 2018
Makefile v0.0.41 Nov 11, 2015 Fix links. Nov 29, 2016
appveyor.yml appveyor: Disable OpenSSL support for automatic builds Oct 24, 2016

Boondock: Rust library for talking to the Docker daemon

Latest version License Build Status Build status Documentation

This is a work in progress!

This is a fork of Graham Lee's highly useful rust-docker library, with hyper support from Toby Lawrence and various other recent patches integrated.

It also adds:

  • Partial support for Docker 1.12 (ongoing)
  • Support for Windows (experimental)
  • Support for building without OpenSSL
  • Support for finding and connection to the daemon using the same DOCKER_HOST, DOCKER_CERT_PATH, etc. variables as the docker command line tool
  • Consistent error-handling via error-chain

This library is used by the development tool cage to talk to the Docker daemon. You're welcome to use it for other things, and we're happy to accept pull requests!

(Also, the maintainers of rust-docker are totally welcome to use any code that they like from this fork. We're mostly maintaining this as a fork so that we can have very quick turnaround times when we need to fix an issue with cage, and we have no objections to this code being merged back upstream.)


For example code, see the examples directory.


On the Mac, you can set up OpenSSL as follows:

brew install openssl
brew link --force openssl

export OPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include
export OPENSSL_ROOT_DIR=/usr/local/opt/openssl

Alternatively, you can build without OpenSSL by passing --no-default-features to cargo, or specifying default-features = false in a Cargo.toml file.


  1. Fork it
  2. Create your a new remote upstream repository (git remote add upstream
  3. Commit your changes (git commit -m 'Add some feature')
  4. Push to the branch (git push origin your-branch)
  5. Create new Pull Request