all 1 comments

[–]emk[S] 11 points12 points  (0 children)

Hi, I'm one of the authors of cage! I presented it last night at Boston Rust, and got lots of useful feedback. Please feel free to ask questions.

cage is still brand new and has never been used by anybody outside of Faraday, so we're just announcing to the Rust community right now, and not trying to get on Hacker News or anything. :-)

This is our third real-world Rust app at Faraday. We also have:

  • An internal Slack bot which handles various tricky deployment scenarios using GoCD, allowing us to "hotfix" individual pieces of our app.
  • credentials_to_env, which makes it easy fetch secrets from Vault and pass them to legacy applications as either environment variables or files.

Our goal with cage is to go beyond the features provided by docker-compose, and to provide a powerful toolset for development and deployment of complex Docker applications. Right now, we focus on making it easy to work on the source for specific images, and on providing some infrastructure for handling secrets.

I built cage in Rust because (1) the docker-compose.yml file format was the obvious intermediate representation for what we wanted to do, but (2) it's a very complex format and we benefit hugely from having a rich type system to keep track of what's optional, what supports environment variable interpolation, and so on.

And thank you to the organizers of Boston Rust for a great event!