edi is a generic tool that helps you to streamline your embedded development infrastructure. By itself edi does not do a lot but together with a project configuration (examples: edi-pi, edi-cl and edi-var) it unfolds its potential and you can build
- artifacts like full OS images that can be directly flashed to a device,
- artifacts that allow you to update your device over the air,
- Linux containers that serve as a digital twin of the device and can be used for development, build automation, testing and even container based deployments and
- nice documents about the content of your artifacts
in a reproducible manner that easily fits into a modern, automated development workflow.
edi is proven in use and OS and container images generated by edi are running on 700k+ devices all around the world! edi project configurations can easily be adjusted to individual use cases and additional hardware devices. The setup is designed in a way that it scales up to large development projects.
Instead of reinventing the wheel, edi leverages best of breed open source technologies:
- Ansible is the tool of choice for doing the configuration management.
- LXD or Podman allow you to run multiple OS twin instances on your development host.
- Yaml and Jinja2 are the consistent way to write edi configuration files and Ansible playbooks.
- Python is the language and ecosystem that makes the system integration efficient.
- edi is supposed to be used on the Ubuntu Linux or Debian Linux distribution.
- By default, edi generates Debian Linux based target systems.
edi is licensed under the LGPL license.
You are welcome to contribute to edi. In case of questions you can contact me by e-mail (lueschem@gmail.com).
For more information please visit https://www.get-edi.io.