The Portable Updates Lightweight Library
libpull is a C library to implement secure and portable software updates on IoT devices.
It targets Class 1 and Class 2 constrained devices, characterized by ~10 kB of RAM and ~100 kB of ROM. However, its lightweight and modular approach can be beneficial also for bigger devices.
The library can be included into MCU firmware to perform Over The Air updates. It is composed of many high-level modules that interact with the low-level abstraction layer, implemented for the specific platform. This is needed since accessing the memory and the network on embedded systems is a complex task and each platform and architecture uses its own primitive.
The goal of the library is to be a portable and secure solution to reduce the costs of securing IoT devices, allowing an easy device update and management also for very constrained applications.