Skip to content

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 реалізації дає більше бенефітів в продуктивності та більшого контролю, і явностей функцій.