LilkaOxide
Проект непоганої(або ні) підтримки Rust на девайс Lilka з усім супутнім. Створений заради забави, є альтернативою оригінальному SDK на Arduino C++.
Якщо ви не знаєте що таке Lilka, рекомендую ознайомитись з проектом.
В першу чергу це незалежний проект від рідного API та різних рішень, адже написаний код ніяким чином не пов'язаний з варіантом на Arduino, чому так - питання на FaQ. Якщо більш детально, то бібліотека та інший код написані без використання ESP-IDF фреймфорку, в no-std форматі, тобто стандартної бібліотеки Rust нема, і різний функціонал що би замінити реалізується через сторонні бібліотеки.
Базується на [esp-hal], загальна бібліотека з реалізацією периферії та інших частин ESP32 на якому базується Lilka, сама вона працює на базі фундаментальної бібліотеки embedded-hal на якій орієнтуються всі інші бібліотеки, тому проблем з сумісністю наприклад бібліотек якогось модуля BMP280 не може бути.
Для кого це?
В першу чергу для тих хто як мінімум знає Rust по Rustbook, та ознайомлений з embedded який може написати щось на Arduino. До речі Rustbook та інші навчальні матеріали надала Українська спільнота по мові програмування, лінк. Після цього можна спокійно розібратись та написати щось мінімальне.
Чому він незалежний?
Ще з часу коли проект був Rustilka причина не змінилась. Але в загалому, тому що так легше розробляти, адже якщо "залежати" від SDK, то тут виникнуть конкретно питання "А як конкретно?", адже можна просто напряму зробити перепис на Rust на базі esp-idf-hal який більш схожий до свого батька(ESP-IDF), або заморочитись і зробити непотрібний overhead у вигляді bindings на Rust. Тому було вирішено краще зробити альтернативу на no-std власній реалізації, яка дає більше переваг. А переваги це:
No-std, менше розмір вихідного бінарника, але змушує викручуватись в написанні коду що би компілятор не сварився. Практично повна реалізація всього API на Rust, і без жодних bindings. Суб'єктивно краща система розробки для різних модулів і периферії через embedded-hal, та трейти в Іржі.
Є якісь питання чи пропозиції?
Вся комунікація йде в офіційному Discord сервері проекту Lilka лінк, і в сабгілці LilkaOxide де все спілкування на рахунок цієї бібліотеки.