Rust — язык, вызывающий бурю эмоций. Одними он любим, другие стараются его обходить стороной. Но при разработке программных продуктов мы не должны выбирать сторону: мы даём инструменты, которые может использовать программист для написания своих приложений, плагинов, библиотеки — всего, что душе угодно.
💻 В
Аврора Platform SDK (PSDK) — наборе инструментов для разработки — в наличии Rust v1.61. Это не последняя текущая версия, но обновление вполне возможно в будущем. Установить rustc, cargo и rustup можно в таргет (целевая платформа) PSDK через sb2:
$PSDK_DIR/sdk-chroot sb2 -t {target_psdk} -m sdk-install -R zypper in -y cargo
где {target_psdk} — название тагрета PSDK.
Rust поддерживает различные платформы для сборки ваших проектов. Установить необходимый таргет можно через rustup, например:
$PSDK_DIR/sdk-chroot sb2 -t {target_psdk} rustup target add {target_rust}
Можно сопоставить таргеты PSDK & Rust следующим образом:
- armv7hl == armv7-unknown-linux-gnueabihf
- aarch64 == aarch64-unknown-linux-gnu
- x86_64 == x86_64-unknown-linux-gnu
Установив необходимые таргеты Rust, можно собирать проект через PSDK для целевой платформы:
$PSDK_DIR/sdk-chroot sb2 -t {target_psdk} cargo build --release --target {target_rust} --verbose -j 1
Обратите внимание на -j 1 - это решает проблему переодических сбоев сборки.
Недавно в открытом репозитории ОМП "
Flutter Community Plugins" появился плагин, в котором UI написан на Flutter, а вся бизнес логика выполняется в библиотеке Rust с C интерфейсом через FFI.
Это первый плагин с использованием Rust во "Flutter Community Plugins" и, надеюсь, не последний. В репозитории плагина вы можете найти все необходимое для написания подобного плагина самостоятельно:
1️⃣ Скрипт сборки.
2️⃣ Логика подключения.
3️⃣ Логика общения Dart & Rust.
4️⃣ Создание привязок и подключения библиотеки.
🔍 Плагин можно найти в открытом репозитории ОМП:
pickers_aurora.