-
-
Notifications
You must be signed in to change notification settings - Fork 1
Comparison
Yusuke Abe edited this page Aug 11, 2026
·
3 revisions
Why wip, and how it relates to the tools next to it.
wip is to WSLC roughly what dip is to Docker Compose: a project-local workflow CLI that turns
long, flag-heavy runtime invocations into wip rspec. It doesn't replace wslc; every command
ends in one.
- wip vs dip — shared ground, differences, what isn't covered yet
-
wip vs docker compose — what consolidating into
wip.ymlbuys you over drivingwslcby hand -
Third Party Compose Tools — the compose-for-
wslcecosystem, and why wip doesn't pick a winner
wip |
dip |
docker compose |
plain wslc
|
|
|---|---|---|---|---|
| Runtime | WSLC | Docker | Docker | WSLC |
| Named project commands | ✔ interaction:
|
✔ interaction:
|
✘ | ✘ |
| Declares services | ✔ dependencies: / reuses compose.yml
|
delegates to Compose | ✔ | ✘ |
Reuses an existing compose.yml
|
✔ (two modes) | ✔ | ✔ (it is it) | ✘ |
.env support |
✔ | ✔ | ✔ | ✘ |
.dockerignore honored on build |
✔ | via Docker | via Docker | ✘ |
| Source-sync for slow mounts | ✔ sync:
|
✘ | ✘ | ✘ |
| Restart policies | approximated by polling | via Compose | ✔ native | ✘ |
| Health checks | ✘ | via Compose | ✔ | ✘ |
| Background daemon | ✘ by design | ✘ | ✔ (the engine) | — |
wip compose-native
|
wip compose
|
a compose-for-wslc tool directly | |
|---|---|---|---|
| External binary | none | required | required |
| Named project commands | ✔ | ✔ | ✘ |
| Compose coverage | a documented subset | the tool's | the tool's |
run (ephemeral) |
✔ real wslc run --rm
|
falls back to exec
|
the tool's |
logs |
one service | the tool's | the tool's |
--watch restarts |
✔ | ✘ | the tool's |
wslc has no native Compose support yet — tracked in
microsoft/WSL#40948. Both of wip's compose modes
exist because of that gap:
-
compose-nativeis the stopgap wip maintains itself -
composeis the bridge to whatever the ecosystem produces in the meantime
wslc is new and still evolving, so expect this landscape to change. wip's stated intent is that
wip.yml's shape stays stable across it.
Being honest about the boundaries:
-
You're on Docker, not WSLC. Use
dipanddocker compose. wip has no Docker backend. - You need production orchestration. wip is a development workflow tool: no daemon, no backoff, no health checks, no scaling.
-
Your
compose.ymlneeds the full spec and you don't want an extra binary.compose-native's subset may not reach far enough;mode: composeplus a real tool will.
Introduction
Modes
Configuration
- Configuration Reference
- Config File Discovery
- Dependencies
- Networking
- Interactions
- Restart Policies
- Env Files
- Secret Masking
- Dockerignore
- Shadow Build Context
- Source Sync
- Sync Modes
compose.yml support
- Compose File Support
- Compose Build
- Compose Depends On
- Compose Profiles
- Compose Variable Interpolation
Commands
- CLI Command Reference
- wip init
- wip version
- wip doctor
- wip config
- wip build
- wip up
- wip stop
- wip down
- wip exec
- wip run
- wip shell
- wip logs
- wip sync
- wip dispatch
- Global Options
- Debug Output
- TTY Allocation
Guides
- Guides
- Migrating from dip
- Reusing an Existing compose.yml
- Fixing a Slow Boot
- Continuous Sync
- Auto Restarting Containers
- Multi Arch Images
- Using wip in CI
Troubleshooting
- Troubleshooting & FAQ
- FAQ
- Configuration Errors
- WSLC Not Found
- Registry Authentication
- Architecture Mismatch
- Volume Limit Reached
- rsync Not Found
- Reporting Issues
Comparison
Project