FaQ
Чому він незалежний?
Ще з часу коли проект був Rustilka причина не змінилась. Але в загалому, тому що так легше розробляти, адже якщо "залежати" від SDK, то тут виникнуть конкретно питання "А як конкретно?", адже можна просто напряму зробити перепис на Rust на базі esp-idf-hal який більш схожий до свого батька(ESP-IDF), або заморочитись і зробити непотрібний overhead у вигляді bindings на Rust. Тому було вирішено краще зробити альтернативу на no-std власній реалізації, яка дає більше переваг.
А переваги це:
- No-std, менше розмір вихідного бінарника, але змушує викручуватись в написанні коду що би компілятор не сварився.
- Практично повна реалізація всього API на Rust, і без жодних bindings.
- Суб'єктивно краща система розробки для різних модулів і периферії через embedded-hal, та трейти в Іржі.
Чому проєкт не використовує ESP-IDF, хоча є можливість?
Це займає багато ресурсів мікроконтролерів, і має багато біндів до самого фреймворку який і бере на себе роль. І створення чистішою і легшої бібліотеки, і тим паче коду. Ви скажете що з esp-idf-sys можна отримати std і мати більше можливих бібліотек для використання, але це не гарантує того що ви вміститесь в флешку чіпа, та й за швидкодію я теж сумніваюсь. Концепція no_std і pure Rust реалізації дає більше бенефітів в продуктивності та більшого контролю, і явностей функцій.