💻 MayBee: френдлі HRM система. Просте та iнтуїтивне управління комплексними HR процесами 🔥

Rust для IoT: Вибір мови для вашого проєкту — досвід Yalantis

Компанія Yalantis — одна з небагатьох на українському ринку, яка має глибоку експертизу використання Rust у розробці. Зараз ми маємо декілька поточних проєктів у секторі зеленої енергетики (EV Charging), медичного та промислового ІoT, а серед наших клієнтів є відомі на ринку IoT RAKwireless, Toyota та інші. 

Залишити коментар
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.
Володимир Мігдаль, Senior Rust Developer, і Михайло Майдан, Head of Rust Department  у компанії Yalantis

Завершальною частиною став практичний приклад використання UniFFI у реальному проєкті.

Мова Rust була розроблена Graydon Hoare і довгий час підтримувалася Mozilla, а її розробка загалом не припиняється протягом 15 років. На маркеті України Rust тільки завойовує своє місце та змінює правила гри. Ця мова привертає увагу великих та інноваційних проєктів своїми перевагами, складністю та постійним розвитком.

«Уявімо ситуацію, коли в нас є велика кодова база, розроблена на Rust або C++, і ми бажаємо використовувати цей код у проєктах, написаних на Python. — без FFI таке було б неможливо. Цей концепт відіграє важливу роль у розробці, адже дає змогу різним мовам програмування взаємодіють між собою. Інтеграція різних технологій і мов, дає змогу розробникам створювати потужні та ефективні рішення, які поєднують у собі найкращі можливості різних мов», — Володимир Мігдаль, Senior Rust Developer у компанії Yalantis.

Інтеграція Rust-коду у проєкти на різних мовах програмування має переваги:

  1. Використання оптимізованого коду: Rust відомий своєю високою продуктивністю та ефективністю у використанні ресурсів, що робить його прекрасним вибором для написання критичних за продуктивністю компонентів програм. Це важливо в тих випадках, коли ви хочете зберегти високу продуктивність у вищерівневих мовах.
  2. Використання наявних бібліотек: Є вже готові бібліотеки та функції, написані на Rust або інших мовах програмування, які нам потрібні. Замість повторного написання коду іншою мовою, ви можете використовувати інтеграцію FFI для прямого доступу до них.
  3. Робота зі складними структурами даних: Інтеграція Rust дозволяє легко передавати складні структури даних із багатошаровими типами між мовами програмування, що полегшує роботу зі складними об'єктами у коді.
  4. Розширення команди: Інтеграція Rust у проєкт відкриває можливості для залучення розробників, які мають досвід у Rust або бажають вивчити цю мову.
  5. Безпека пам’яті: Rust має вбудовану систему безпеки пам’яті, що робить його відмінним вибором для критичних за безпекою проєктів.

Друга частина мітапу була про використання Rust для проєктів IоТ, а також переваги та недоліки мови. Спікером став Михайло Майдан, Head of Rust Department у Yalantis, а ще викладач у Національному університеті Львівської політехніки. Він має понад п’ять років досвіду як embedded-інженер у розробці embedded Linux і bare metal, а також IoT пристроїв.

Спершу ми розглянули характеристики типового пристрою для Internet of Things. Це мікрочип з обмеженими: ресурсами, пам’яттю, а також швидкістю та потребою в енергоефективності. Багато таких пристроїв працюють на батарейках і потребують оптимізованих прошивок для довгого терміну служби батарей і пристрою в цілому.

На сьогодні для таких пристроїв вигідно використовувати три основні мови програмування, причому дві з них вибиваються в лідери — С та С++.

«Rust є хорошим вибором для IoT та Embedded проєктів. Мова забезпечує безпеку на рівні типів і допомагає уникати null-pointers, а також немає undefined behavior. Для більш складних проєктів важлива підтримка конкурентності та можливість використовувати багатозадачний режим, і Rust — забезпечує цю можливість. Для успіху мови важливо щоб екосистема продовжувала зростати й наповнюватися різними бібліотеками та фреймворками. Підтримка великими компаніями, такими як Microsoft і Google, також говорить про потенціал мови. Незважаючи на всі переваги, Rust усе ще має недоліки: зрілість екосистеми, високий поріг входу, різноманіття тулінгу», — Михайло Майдан, Head of Rust Department у Yalantis.

Rust відрізняється універсальністю, підтримкою різних сфер, включаючи Embedded, Game Development і Backend Development. Хоча Rust може бути повільнішим у розробці в порівнянні з іншими мовами, він компенсує це безпекою, продуктивністю та зручністю інструментів.

Записи виступів спікерів із презентаціями Yalantis Meetup: Rust Edition доступні за посиланням. Про досвід Yalantis і більше про екосистему IoT можна переглянути тут

Yalantis — українська аутсорсингова компанія, якій у 2023 році виповнюється 15 років. Команда Yalantis нараховує 500 спеціалістів. Компанія має офіси у Варшаві, Дніпрі, Києві, Львові та Ларнаці та понад 200 проєктів у своєму портфоліо. Переглянути актуальні вакансії можна на DOU.

Хочете повідомити важливу новину? Пишіть у Telegram-бот

Головні події та корисні посилання в нашому Telegram-каналі

Обговорення
Коментарів поки немає.