Українська Rust Спільнота
495 subscribers
118 photos
1 video
212 links
Вітаємо на каналі Rust 🦀 ентузіастів!
Тут ви знайдете актуальну інформацію про мову програмування Rust.
Чат: https://t.me/rustlang_ua
Канал англійською: https://t.me/learn_rust
Запропонувати новину: @wandalen_me
Download Telegram
Rust порада, яка вам точно не треба ⤵️

Якщо ви часто використовуєте Windows API, можливо Owned тип із windows::core модуля це саме те, чого вам не вистачало.
Дуже легко забути закрити (вивільнити) handle. Якщо ви обгорнете його Owned типом, то він автоматично закриється під час видалення об'єкта (on drop).
use windows::Win32::System::Services::SC_HANDLE;
use windows::code::Owned;

pub struct MyService {
service_handle: Owned<SC_HANDLE>,
}

MyService {
service_handle: unsafe { Owned::new(OpenSCManagerW(/* ... */)?) },
}

Owned тип можна використовувати із кожним типом із windows крейту, який імплементує Free трейт. По-суті, це будь який handle.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4👏2
Сьогодні ми поговоримо про інтеграційні тести 😁

Згідно Rust book (The Rust Programming Language/Test Organization#integration-tests), інтеграційні тести мають бути у tests папці, де кожен файл компілюється як окремий крейт.

Проте ми усе ще можемо скомпілювати усі інтеграційні тести як один крейт. Потрібно додати main.rs та оголосити у ньому усі інші модулі. Наприклад (джерело):
tests/
cargosuite/
main.rs # <- mod build; mod run; mod test; mod publish;
build.rs
run.rs
test.rs
publish.rs

Тепер усі інтеграцій тести буду скомпільовані як один бінарний крейт.

Чому нам взагалі хотіти компілювати інтеграційні тести як один крейт? Відповідь: продуктивність та час виконання (джерело).
1. Маючи один крейт на усі інтеграційні тести ми зменшуємо час компіляції. Таким чином rustc потрібно проводити менше лінкування (оскільки маємо менше крейтів). Побачити порівняння продуктивності виконання тестів можна на самому cargo: https://github.com/rust-lang/cargo/pull/5022#issuecomment-364691154.
2. cargo виконуватиме всі тести з одного бінарного крейту паралельно. У той час як бінарні крейти запускаються послідовно. Тобто чим менше бінарних крейтів, тим більше паралельності під час виконання тестів.

Бонус ⭐️
Якщо ви хочете компілювати інтеграційні тести як окремі крейти, але при цьому виділити спільний код у підмодулі щоб перевикористати у тестах, то ви це можете зробити помістивши потрібний код у окрему директорію. Детальніше про це можна прочитати тут:
🔘 The Rust Programming Language/Test Organization#submodules-in-integration-tests.
🟣 matklad/Delete Cargo Integration Tests.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👏4👍3
Rust Bootcamp вдруге бореться за Премію DOU! 🏆🔥

Привіт! Rustcamp 🦀, участь в якому брало вже понад 500 людей від нашої спільноти бореться за Другу Премію Dou у номінації “Найкраща некомерційна ініціатива, яка сприяє розвитку ІТ-галузі”.

Вибір найкращої ініціативи проводиться голосуванням експертної групи (50%) та голосуванням аудиторії (50%)

❗️ Тож просимо усіма силами підтримати наш проект. Як проголосувати?
1. Заходимо на сайт Друга Премія DOU
2. Входимо у ваш DOU аккаунт
3. Заходимо у категорію 💡"Найкраща некомерційна ініціатива, яка сприяє розвитку ІТ-галузі"
4. Знаходимо наш “Rust Bootcamp”
5. Натискаємо Обрати

Голосування проводиться до 27 лютого, тому не зволікайте, будь ласка, та проголосуйте за нашу ініціативу 🧡
🔥9👍4👎2🫡1
Сьогодні поговоримо про цікавий спосіб пришвидшити компіляцію Rust проекту у 1.5 – 2.5 разів 😁

На цей пост надихнув пост Інгвара у Bluesky ➡️ https://bsky.app/profile/rreverser.com/post/3lhtsq7revk2c

Трохи історії. У листопаді 2023 року робоча група Parallel Rustc (The Parallel Rustc Working Group) анонсували використання Cranelift як альтернативного бекенду компілятора для когодегенерації та можливості паралелізму у фронтенді компілятора: Faster compilation with the parallel front-end in nightly. Спочатку планувалося зробити його доступним у стабільному Rust у 2024, але, як ми бачимо, не склалося.

Ну і власне уся суть пришвидшення в увімкненні Cranelift 😁 Для цього потрібно зробити 2 речі:
1. Встановити:
rustup update nightly
rustup component add rustc-codegen-cranelift --toolchain nightly

2. Конфігурувати:
# .cargo/config.toml
[build]
rustflags = ["-Z", "threads=8"]

[unstable]
codegen-backend = true

# you can customize profiles
[profile.dev]
codegen-backend = "cranelift"

Тепер при компіляції проекту через cargo +nightly build використовуватиметься Cranelift замість LLVM.

Недоліки:
🔴 Використання нестабільної версії Rust. Тому ми рекомендуємо використовувати це тільки для debug компіляцій, а для релізів брати тільки стабільну версію Rust.
🔴 Cranelift може генерувати трохи повільніший код ніж LLVM. Зазвичай для debug білдів це не страшно, але варто мати на увазі.

Корисні посилання:
🟡 Faster compilation with the parallel front-end in nightly.
🟣 github/rust-lang/rustc_codegen_cranelift.
🔘 doc.rust-lang.org/nightly/cargo/reference/unstable#codegen-backend.
🔘 doc.rust-lang.org/cargo/reference/profiles.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍2
Rust 1.85.0 офіційно випущено! 🦀

Цей реліз не лише додає асинхронні замикання, а й презентує цілковито нову редакцію Rust 2024! Ще однією важливою перевагою цього випуску є оновлення мови, що забезпечує сумісність зі зворотними версіями. Також було розширено підтримку FromIterator та Extend, спрощуючи колекціонування даних у кілька структур одночасно. Розробники бібліотек тепер можуть використовувати новий атрибут #[diagnostic::do_not_recommend], щоб точніше налаштовувати повідомлення про помилки й підказки.

https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html

Спробуйте самі!
🎉8🔥4👾2👨‍💻1
Українська Rust Спільнота pinned «Rust 1.85.0 офіційно випущено! 🦀 Цей реліз не лише додає асинхронні замикання, а й презентує цілковито нову редакцію Rust 2024! Ще однією важливою перевагою цього випуску є оновлення мови, що забезпечує сумісність зі зворотними версіями. Також було розширено…»
🦀 Запрошуємо усіх Rust розробників та ентузіастів відвідати конференцію у Польщі – Rustikon! 🦀

📅 Зберігайте дату: 26 березня і готуйтеся до дня, сповненого глибоких занурень у Rust, навчання від провідних експертів та розваг на афтерпаті!

🎟 Спеціальна пропозиція для Української Rust Спільноти!
Використовуйте промокод RustCampRustikon та отримайте 15% знижки на квиток!

🔗 Придбати квиток: https://www.rustikon.dev/tickets

Розвиваймо Rust-спільноту разом – побачимось у Варшаві!


-------------------------------------


🎁 Розігруємо 2 безкоштовні квитки на Rustikon від Української Rust Спільноти!

Умови участі у розіграші:
- зробити репост посту про Rusticon у X (Twitter) із хештегами #rusticon #uarustconf #rustlang
- надіслати скріншот із репостом нам у телеграм @wandalen_me

Результати опублікуємо вже 14 березня! Успіху!
1
🔥 Розпочинаємо публікацію доповідей з UA Rust Conference 2024! 🔥
Першою ділимося доповіддю "Parsing text data with SIMD in Rust" від Максима Воробйова.

Іноді потрібно швидко витягнути трохи корисної інформації з величезних текстових масивів, але стандартні бібліотеки парсингу не завжди з цим справляються. У своїй доповіді Максим розповідає:
◾️ Як Rust дозволяє писати швидкі та надійні парсери
◾️ Чому звичайні бібліотеки можуть бути неефективними для роботи з великими текстами
◾️ Як використати SIMD-інструкції процесора для максимальної продуктивності
◾️ Як написати платформозалежний парсер у Rust

Дивіться відео за посиланням, та ставте вподобайки!
👍6
🔸Наступна доповідь UA Rust Conference 2024 - "FFI. Rust integration into existing systems" від Павла Миронюка.🔸

Rust усе частіше використовують у системному програмуванні, додаючи його в існуючі проєкти замість повного переписування коду. Але інтеграція Rust через FFI (Foreign Function Interface) — це не тривіальне завдання. У цій доповіді Павло розповість:
◾️ Як додати Rust до проєкту, написаного іншими мовами
◾️ З якими проблемами можна зіткнутися під час FFI-інтеграції
◾️ Як зробити процес безпечнішим та простішим
◾️ Практичні поради та кращі практики FFI

Якщо ви працюєте з Rust у низькорівневих проєктах, ця доповідь дасть вам корисні інструменти! Переходьте за посиланням та ставте вподобайки 🔥
6👍4
🔵 Привіт! У наступний понеділок 14 квітня відбудеться публічний захист проектів випускників 🎓 Rustcamp Winter - 2025.

Кепстоун-проект - одна з обов'язкових умов завершення табору. Cам проект учасники робили на соціально-важливі теми або за власним вибором.

Тож запрошуємо усіх бажаючих доєднатись до зустрічі, заслухати наших доповідачів, поставити свої запитання та дати їм цінний фідбек. Початок о 18:30.

📆 Google Meet - додати подію
🔗 Посилання на зустріч

До зустрічі 👋
👍5🔥4
🔸 Ще одна доповідь із UA Rust Conference 2024 - "Tokens all the way down" від Maciej Hirsz.🔸

Ця презентація — м'яке занурення у світ лексичного аналізу (lexing), де доповідач поступово оптимізує naive лексер, демонструючи покрокові покращення. Навіть якщо ви ніколи не працювали з лексерами чи парсерами, знання, отримані тут, можна застосувати у багатьох Rust-програмах.

У доповіді:
◾️ Основи лексичного аналізу
◾️ Як працює лексер та як його оптимізувати
◾️ Покрокове покращення продуктивності naive лексера
◾️Загальні прийоми, корисні для оптимізації коду в Rust

Переходьте за посиланням та ставте вподобайки 🔥
👍4
🔸 Наступна доповідь із UA Rust Conference 2024 - "Exploiting MapleStory RNG for fun" від Igor Malovitsa. 🔸

Що, якщо можна зламати систему випадкових чисел в улюбленій MMORPG? У цій доповіді Ігор показує, як вразливість у генераторі випадкових чисел (RNG) дозволила стати надзвичайно везучим у лотереї гри MapleStory.
Чому Rust? Через ефективність, контроль над пам’яттю та продуктивність, що були критично важливими для реалізації експлойту.

У доповіді:
◾️ Як працюють генератори випадкових чисел у відеоіграх
◾️ Які слабкі місця можуть бути у RNG і як їх використати
◾️ Чому Rust став ідеальним вибором для реалізації експлойту
◾️ Демонстрація практичного зламу RNG у MapleStory

Дивіться відео за посиланням, та ставте вподобайки! 🎥🔥
🔥4👍2
🔵 Підводимо підсумки по Rustcamp – Winter 2025!

Ми отримали 126 заявок і прийняли 51 учасника, яких супроводжувала неймовірна команда з 12 менторів. Із цих 51 учасника, 19 успішно дійшли до випуску. До того ж, 10 випускників змогли скласти сертифікаційний іспит і отримати звання Certified Rust Developer. Вітаємо всіх причетних! 🎉

🏆 Як видно з графіка, цей буткемп виявився особливо успішним: практично по всіх розділах більшій кількості учасників вдалось їх завершити у порівнянні з іншими нашими буткемпами.

🔗 Ви можете переглянути всі проєкти випускників і подивитися запис їхніх презентацій за наведеними посиланнями!
🔥8👍4
🔥 Ми з радістю оголошуємо набір у 🏕️ Rust Bootcamp - Summer 2025! Цей табір створений для тебе, якщо ти вже прочитав RustBook і маєш досвід розробки. Проте навіть якщо ні, ти можеш спробувати свої сили та отримати знання та навички достатні для професійної розробки на Rust.

📆 Старт: 30 червня Тривалість: 4 місяці.

🟢 Основне про Rust Bootcamp:
◾️ Повністю Безкоштовно
◾️ Онлайн Формат
◾️ Сертифікація
◾️ Перевірена Програма
◾️ Досвідчені Ментори
◾️ Навчання в Малих Групах та Дружня Атмосфера

🟢 Якщо сумніваєшся чи цей формат навчання підходить тобі, то переглянь фідбеки від минулих учасників та запитай поради у нашому чаті. Проте врахуй, будь ласка, що програма інтенсивна та розрахована на залученість у 20 год на тиждень.

🟢 Реєстрація вже відкрита, тож заповнюй форму вже сьогодні! Дедлайн реєстрації - 20 червня.

Не прогав можливість покращити 🔝 свої професійні навички, поліпшити свої кар'єрні перспективи та знайти друзів серед людей із подібними 🤓 інтересами.
🔥12👍2
⚠️ Увага! Змінено дату старту Rust Bootcamp — Summer 2025

📆 Тепер починаємо 4 серпня

📌 Дедлайн реєстрації — 24 липня: тож заповнюй форму https://forms.gle/wJyadSCLbAj1Btq76

📆 Вступний екзамен — 28 липня

🔥 Rust Bootcamp — Summer 2025 — це безкоштовний онлайн-табір для тих, хто хоче заглибитись у професійну розробку на Rust.

🟢 Основне про Rust Bootcamp:
◾️ Повністю Безкоштовно
◾️ Онлайн Формат
◾️ Сертифікація
◾️ Перевірена Програма
◾️ Досвідчені Ментори
◾️ Навчання в Малих Групах та Дружня Атмосфера

👀 Ще не впевнений?
Подивись фідбеки учасників минулих потоків 👉 https://youtube.com/playlist?list=PLc6DUOH8rVjFuzomTZeV0HHKOca_g_zZy
І приєднуйся до чату спільноти 👉 https://t.me/rustlang_ua

Готуйся приділяти ~20 год/тиждень. Це буде інтенсивно, але максимально корисно для твоєї кар'єри 💼

Заповнюй форму вже зараз — і побачимось на вступному 💪
📋 https://forms.gle/wJyadSCLbAj1Btq76
4👍2
🚀 Готовий до виклику?
Ми починаємо раніше, ніж планували!

Rust Bootcamp — Summer 2025 стартує вже 22 липня 💥
🗓️ Реєстрація - до 16 липня
🧠 Вступний іспит - 18 липня

👉 Тож якщо ти не заповнив форму - краще поквапся:
https://forms.gle/wJyadSCLbAj1Btq76

Це буде насичений безкоштовний онлайн-табір, де ти з головою пірнеш у Rust 🦀
З менторами, практикою, підтримкою і живою атмосферою, яка реально заряджає.

📌 Що отримаєш:
навчання в невеликих групах
~20 год/тиждень — інтенсив, але без вигорання
підтримку спільноти, яка завжди поруч
сертифікат (і нові скіли в портфоліо)
впевненість у власних силах 💪

🎥 Хочеш глянути, як це було минулого разу?
Ось відгуки учасників:
https://youtube.com/playlist?list=PLc6DUOH8rVjFuzomTZeV0HHKOca_g_zZy

💬 Питання? Сумніви? Заходь у чат, там свої 🦀:
https://t.me/rustlang_ua

Може, ти давно хотів розібратись у Rust, але не знав, з чого почати?
Оце той самий знак.

Ти ще встигаєш.
Але часу все менше
📣 Поділись із другом, якому це точно треба!
👍1😱1
До завершення реєстрації на Rust Bootcamp - Summer 2025 залишилось лише 3 дні!

📅 Дедлайн - 16 липня
📆 Старт - 22 липня
📋 Форма: https://forms.gle/wJyadSCLbAj1Btq76

🦀 Це буде 4 місяці живого онлайн-навчання з менторами, реальними проєктами, підтримкою комʼюніті та сертифікацією.
Інтенсивно і результативно!

💚💚 Окрема подяка спільнотам, які нас підтримали! Саме завдяки ним про Rust Bootcamp дізнаються нові люди.

👨‍💻 Codica - ті, хто змінює уявлення про аутсорс
Це українська команда з Харкова, яка вже понад 10 років створює складні веб- і мобільні додатки. Без аутстафу, з прямими клієнтами та здоровою командною культурою.

Ще одна річ, яка нас дуже зачепила - це їхній настрій. Вони кажуть: «Ми харків’яни за духом: витримуємо будь-які бурі й не забуваємо жартувати».
👉 Телеграм: t.me/codica
👉 Сайт: codica.com

🎮 Godot Ukraine - де мрії про створення гри стають реальністю
Це українська спільнота творців ігор на двигуні Godot. Тут підтримують новачків, діляться знаннями та допомагають реалізувати свою першу гру.

Вони кажуть: «Ми допоможемо здійснити маленьку мрію - створити гру» 🎯
👉 Приєднуйся: t.me/GodotUkraine

Якщо ти теж хочеш підтримати ініціативу - просто поділись цією новиною в своєму каналі, серед студентів чи друзів.
📩 Часу все менше - але ще встигаєш заповнити форму!
🔥4
🦀 Фінішна пряма відбору на Rust Bootcamp - Summer 2025 !
Набір уже завершено, дякуємо всім, хто зареєструвався!

📅 Тестування - вже завтра, у п'ятницю 18.07 з 19:00 до 20:00 за Києвом.

Запрошення на Google Meet надішлемо завтра на пошту, яку ви вказували в анкеті. Перевіряйте вхідні та папку "Спам".

У вас буде лише одна спроба скласти тест - у вказаний час. Якщо з якоїсь причини ви не зможете бути присутніми або технічно змарнуєте спробу - наступна можливість долучитись буде вже взимку.

Результати відбору повідомимо в понеділок.

У вівторок - перша спільна зустріч для всіх груп, а в середу вже стартують перші заняття в групах.

Участь у перших двох зустрічах - обов’язкова.

Успіхів на тесті й до зустрічі онлайн! 🚀

P.S. Друзі, хто хвилювався щодо роботи бота - так, ми його вимкнули. До уваги беремо лише заповнені дані у формі та ваші мотиваційні листи
4
😁28🔥7🤩3🤔1