Все ж таки яка різниця між оригінальним SDK та rustilka bsp?
1. Різні мови програмування та різні імплементації.
SDK для Лілки розробляється саме на Arduino фреймворці який є модифікований і спрощений C++, бібліотека підтримки повністю написана на Rust, навіть всі бібліотеки написані які використані в проєкті з нуля написана на Rust, тобто ніяких "біндів" не повинно бути.
2. Присутність та відсутність IDF.
Все ж таки rustilka немає IDF, з одної сторони всі функції написані тільки на Rust, менше займає пам'яті, та (мабуть) працює швидше без зайвих викликів, адже бібліотека дає прямий доступ до периферії. З іншої сторони все трохи складніше.
3. Все зайве чи потрібне?
Ориганільний SDK має окрім стандартної ініціалізації заліза на платі для маніпуляцій з периферією, а ще й деякі функції по типу математичних функцій та UI. А rustilka йде так само як esp-hal і різні "хали", тобто все що є на платі та потрібне, а різну функціональність пропонується написати самому для навчання(для чого і була створена лілка).
4. RTOS чи async?
Частіше за все використовують різні RTOS по типу FreeRTOS. В бібліотеці вже вбудована проста async функціональність через проєкт embassy. Перевага тут в, тому що асинхронність займає менше постійної пам'яті та/або асинхронно виконувати окремі функції.
5. Мінімалізм чи простота для користувача?
Як і говорилося бібліотека має тільки підтримку периферії та модулів на платі, але все ж таки деякі на даний момень модулі мають raw ініціалізацію які потребують детальнішої роботи в коді. Комусь це здається ускладненням, але все ж таки на думку автора це як раз і потрібно для low level програмування та навчання embedded.
6. Перевага мов
Сама Rust має дуже багато переваг, так звісно вона не замінить повністю той же C++ і навіть богоподібний C, але все ж таки, безпека пам'яті дуже болюча тема на сьогодні, адже контроль над ними в C/C++ виконують самі розробники, Rust своєю чергою має свої правила безпеки пам'яті, і перевіряє їх перед компіляцією, цей етап називається borrow checker.