Відділ новинYalantis
18 жовтня 2023, 17:27
2023-10-18
Rust для IoT: Вибір мови для вашого проєкту — досвід Yalantis
Компанія Yalantis — одна з небагатьох на українському ринку, яка має глибоку експертизу використання Rust у розробці. Зараз ми маємо декілька поточних проєктів у секторі зеленої енергетики (EV Charging), медичного та промислового ІoT, а серед наших клієнтів є відомі на ринку IoT RAKwireless, Toyota та інші.
Використання Rust для створення багатомовних екосистем та його потенціал в IoT проєктах — тема мітапу Yalantis Meetup: Rust edition, що відбувся у вересні. Ми вкотре проводимо освітні заходи присвячені Rust та розвіюємо міфи, що його застосування обмежується тільки блокчейн технологією. У статті ви знайдете саммері про доповіді спікерів із головними тезами, а також посилання на відеозаписи.
У першій частині Володимир Мігдаль, Senior Rust Developer у компанії Yalantis, розглянув:
Основні поняття FFI (Foreign Function Interface) і роль, яку воно відіграє у світі Rust;
Основні типи байдінгів: написані власноруч або згенеровані;
Екосистему Rust і корисні інструменти та утиліти для роботи з FFI;
Креативне рішення у вигляді UniFFI.
Завершальною частиною став практичний приклад використання UniFFI у реальному проєкті.
Мова Rust була розроблена Graydon Hoare і довгий час підтримувалася Mozilla, а її розробка загалом не припиняється протягом 15 років. На маркеті України Rust тільки завойовує своє місце та змінює правила гри. Ця мова привертає увагу великих та інноваційних проєктів своїми перевагами, складністю та постійним розвитком.
Інтеграція Rust-коду у проєкти на різних мовах програмування має переваги:
Використання оптимізованого коду: Rust відомий своєю високою продуктивністю та ефективністю у використанні ресурсів, що робить його прекрасним вибором для написання критичних за продуктивністю компонентів програм. Це важливо в тих випадках, коли ви хочете зберегти високу продуктивність у вищерівневих мовах.
Використання наявних бібліотек: Є вже готові бібліотеки та функції, написані на Rust або інших мовах програмування, які нам потрібні. Замість повторного написання коду іншою мовою, ви можете використовувати інтеграцію FFI для прямого доступу до них.
Робота зі складними структурами даних: Інтеграція Rust дозволяє легко передавати складні структури даних із багатошаровими типами між мовами програмування, що полегшує роботу зі складними об'єктами у коді.
Розширення команди: Інтеграція Rust у проєкт відкриває можливості для залучення розробників, які мають досвід у Rust або бажають вивчити цю мову.
Безпека пам’яті: Rust має вбудовану систему безпеки пам’яті, що робить його відмінним вибором для критичних за безпекою проєктів.
Друга частина мітапу була про використання Rust для проєктів IоТ, а також переваги та недоліки мови. Спікером став Михайло Майдан, Head of Rust Department у Yalantis, а ще викладач у Національному університеті Львівської політехніки. Він має понад п’ять років досвіду як embedded-інженер у розробці embedded Linux і bare metal, а також IoT пристроїв.
Спершу ми розглянули характеристики типового пристрою для Internet of Things. Це мікрочип з обмеженими: ресурсами, пам’яттю, а також швидкістю та потребою в енергоефективності. Багато таких пристроїв працюють на батарейках і потребують оптимізованих прошивок для довгого терміну служби батарей і пристрою в цілому.
На сьогодні для таких пристроїв вигідно використовувати три основні мови програмування, причому дві з них вибиваються в лідери — С та С++.
Rust відрізняється універсальністю, підтримкою різних сфер, включаючи Embedded, Game Development і Backend Development. Хоча Rust може бути повільнішим у розробці в порівнянні з іншими мовами, він компенсує це безпекою, продуктивністю та зручністю інструментів.
Записи виступів спікерів із презентаціями Yalantis Meetup: Rust Edition доступні за посиланням. Про досвід Yalantis і більше про екосистему IoT можна переглянути тут.
УЧАСТЬ В АЗАРТНИХ ІГРАХ МОЖЕ ВИКЛИКАТИ ІГРОВУ ЗАЛЕЖНІСТЬ. ДОТРИМУЙТЕСЯ ПРАВИЛ (ПРИНЦИПІВ) ВІДПОВІДАЛЬНОЇ ГРИ.
Ліцензія видана ТОВ "СЛОТС Ю.ЕЙ." на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 15.09.23 (рішення КРАІЛ №245 від 31.08.2023); ТОВ "СЛОТС Ю.ЕЙ." – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 26.04.2021 (рішення КРАІЛ №150 від 12.04.2021); ТОВ «СПЕЙСИКС» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 08.02.2021 (рішення КРАІЛ №34 від 02.02.2021); ТОВ «ГЕЙМДЕВ» – на провадження діяльності з організації та проведення азартних ігор казино у мережі Інтернет від 16.02.2021 (рішення № 47 від 10.02.2021).