edi icon indicating copy to clipboard operation
edi copied to clipboard

Embedded development infrastructure.

Embedded Development Infrastructure - edi

.. image:: https://github.com/lueschem/edi/actions/workflows/package-build.yml/badge.svg?branch=master :target: https://github.com/lueschem/edi/actions?query=branch%3Amaster

.. image:: https://github.com/lueschem/edi/actions/workflows/package-build.yml/badge.svg?branch=develop :target: https://github.com/lueschem/edi/actions?query=branch%3Adevelop

.. image:: https://img.shields.io/badge/deb-packagecloud.io-844fec.svg :target: https://packagecloud.io/get-edi/debian

.. image:: https://readthedocs.org/projects/edi/badge/?version=latest :target: https://docs.get-edi.io/en/latest/?badge=latest :alt: Documentation Status

edi is a generic tool that helps you to streamline your e\ mbedded d\ evelopment i\ nfrastructure. 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-pi: https://github.com/lueschem/edi-pi .. _edi-cl: https://github.com/lueschem/edi-cl .. _edi-var: https://github.com/lueschem/edi-var

edi is proven in use and OS and container images generated by edi are running on 250k+ 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_ allows you to run multiple OS instances on your development host. For complex target system deployments LXD is a great choice too.
  • 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.

.. _Ansible: https://www.ansible.com .. _LXD: https://www.linuxcontainers.org .. _Yaml: http://docs.ansible.com/ansible/YAMLSyntax.html .. _Jinja2: http://jinja.pocoo.org/ .. _Python: https://www.python.org .. _Ubuntu Linux: https://www.ubuntu.com .. _Debian Linux: https://www.debian.org


License +++++++

edi is licensed under the LGPL license.

Contributions +++++++++++++

You are welcome to contribute to edi. In case of questions you can contact me by e-mail ([email protected]).

More Information ++++++++++++++++

For more information please visit https://www.get-edi.io_.

.. _https://www.get-edi.io: https://www.get-edi.io