20 releases
0.0.59 | Sep 13, 2020 |
---|---|
0.0.58 | Jul 5, 2020 |
0.0.57 | Apr 8, 2020 |
0.0.55 | Jan 12, 2019 |
0.0.48 | Nov 13, 2016 |
#891 in Development tools
Used in 2 crates
170KB
3.5K
SLoC
compose_yml
: Support for working with docker-compose.yml
files
This is a work in progress! Most of services:
is supported, but I'm
still refining the APIs as higher-level tools get build around this.
Goals
docker-compose.yml
is a very useful format, but it's hard to parse and
transform correctly. This library aims to offer:
- High-level, type-safe APIs for anything you can find in a
docker-compose.yml
file. - Parsing of individual string fields into real objects.
- Support for working with strings that might contain variable interpolations, and leaving them unparsed when necessary.
- Canonical representations of fields which may have multiple formats.
- Easy updates when
docker-compose.yml
gets extended.
Building
You can build this library using stable Rust version 1.11. But if you want to develop it, you will get much better error messages using a nightly build of Rust.
# Install Rust stable and nightly using rustup.
curl -sSf https://static.rust-lang.org/rustup.sh | sh
rustup toolchain install nightly
# Build unit tests using nightly Rust.
rustup run nightly cargo test --no-default-features --features unstable
License
This library is in the public domain as described by LICENSE.txt
, except for the files src/v2/validate/config_schema_v2.*.json
, which are copyright Docker, Inc., and distributed under the Apache License, version 2.0.
Sponsor
Part of the work on compose_yml
has been generously
sponsored by Faraday for use in their cage
tool, which is
designed to go beyond docker-compose
and provide support for large,
multi-pod apps.
Dependencies
~14MB
~295K SLoC