Отдел новостейYalantis
18 октября 2023, 17:27
2023-10-18
Rust для IoT: Выбор языка для вашего проекта — опыт Yalantis
Компания Yalantis — одна из немногих на украинском рынке, которая имеет глубокую экспертизу использования Rust в разработке. Сейчас у нас есть несколько текущих проектов в секторе зеленой энергетики (EV Charging), медицинского и промышленного IoT, а среди наших клиентов известны на рынке 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 можно посмотреть здесь.