This is the prototype moby-based container engine for running PRTQL applications
This project is still very much a work-in-progress and not intended for everyday use.
Caution is adviced.
- Small footprint: 3.5x smaller than Docker CE, packaged as a single binary
- Multi-arch support: Available for a wide variety of chipset architectures, supporting everything from tiny IoT devices to large industrial gateways
- True container deltas: Bandwidth-efficient updates with binary diffs, 10-70x smaller than pulling layers
- Minimal wear-and-tear: Extract layers as they arrive to prevent excessive writing to disk, protecting your storage from eventual corruption
- Failure-resistant pulls: Atomic and durable image pulls defend against partial container pulls in the event of power failure
- Conservative memory use: Prevents page cache thrashing during image pull, so your application runs undisturbed in low-memory situations
It has been purpose-built for improved performance and is compatible with Docker containers. Based on Docker’s Moby Project, balenaEngine supports container deltas for 10-70x more efficient bandwidth usage, has 3x smaller binaries, uses RAM and storage more conservatively, and focuses on atomicity and durability of container pulling.
We left out Docker features that we saw as most needed in cloud deployments and therefore not warranting inclusion in a lightweight IoT-focused container engine. Specifically, we’ve excluded:
- Docker Swarm
- Cloud logging drivers
- Plugin support
- Overlay networking drivers
- Non-boltdb discovery backends (consul, zookeeper, etcd, etc.)
- Buildkit (although support can be enabled using a build tag)
Unless you depend on one of the features in Docker that balenaEngine omits, using balenaEngine should be a drop-in replacement.
PRTIQL Engine is licensed under the Apache License, Version 2.0.