Все ж таки яка різниця між оригінальним 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.