Українська Rust Спільнота – Telegram
Українська Rust Спільнота
500 subscribers
125 photos
1 video
221 links
Вітаємо на каналі Rust 🦀 ентузіастів!
Тут ви знайдете актуальну інформацію про мову програмування Rust.
Чат: https://news.1rj.ru/str/rustlang_ua
Канал англійською: https://news.1rj.ru/str/learn_rust
Запропонувати новину: @wandalen_me
Download Telegram
Друзі, наші інформаційні партнери команда Fwdays — організовують технічні онлайн-конференції, воркшопи, курси та мітапи для ІТ-спеціалістів🔝

🎙Їх майбутні події:
— Воркшоп «Why Next JS is a big deal in 2023» | 29 квітня 2023
— Конференція JavaScript fwdays’23 | 16 та 20 травня 2023
— Конференція .NET fwdays’23 | 17 червня 2023

PS: на онлайн-конференції ви можете потрапити абсолютно безкоштовно 🤫

Деталі за посиланням 🔗https://bit.ly/3zAPqa6

Реклама від інформаційних партнерів
🔥15👍3
Оновлення в політиці торгової марки Rust
Нещодавно Фонд Rust зробили оголошення про те, що вони збираються оновити політику щодо торгової марки Rust - логотипів, назви та представлення.
Це не стосується талісману проекту - Ferris, бо вони, фактично, не володіють ним на правовому рівні.
Основні терміни оновленої політики:
- Якщо ви проявляєте підтримку Rust на своїх ресурсах на кшталт сайту, каналу на YouTube і т.п., ви маєте дотримуватися нової політики.
- Якщо ви створюєте навчальні матеріали, ви маєте явним чином сказати, перед першим абзацем, про те що ви не користуєтесь підтримкою Фонду Rust.
- Ви не можете використовувати торгову марку Rust на своїх аватарах, у назвах/іменах, якщо ви є комерційним продуктом.
- Ви не можете змінювати логотип Rust, ви можете лише змінювати його розмір. Зміна кольору, викривлення форми не дозволені. Кольорові варіації будуть створені окремо.
- Ви не можете мати крейт зі словом rust у його назві. Тепер ця можливість буде зарезервована для Фонду.
- Ви не можете використовувати або зареєструвати цілком, або частково елементи торгової марки як частину вашої власної марки - торгової марки, сервісної марки, доменного імені, назви компанії, назви продукту.
- Ваш логотип має бути більше за розміром, ніж марки Фонду.
- Якщо ви відповідальні за певну спільноту "Rust-ентузіастів", то ви:
  - не можете це робити доти, доки не створите і не впровадите надійний "Кодекс поведінки", який стверджує, що основним фокусом групи є програмне забезпечення на Rust.
  - Група не може створювати коштовні продукти.
  - Група не може отримувати прибуток ("profit").
  - Якщо ви проводите конференцію, вона має бути в основному про Rust, не має бути прибутковою, не може показувати вогнепальну зброю (??), має дотримуватися місцевих правил охорони здоров'я, і мати надійний "Кодекс поведінки".
🤯19🤬8👍5
Друзі, ми це зробили! 8 квітня ми провели міжнародну Rust 🦀 конференцію та завдяки вам зібрали 311 тис. грн для наших ЗСУ 🇺🇦. 14 українських та іноземних спікерів із різноманітними доповідями та ваша активна участь допомогли зробити UA Rust Conference 2023 наймасштабнішою Rust подією в межах України цього року. А ще ми залучились підтримкою надійних партнерів, з якими продовжимо співпрацю задля розвитку нашої спільноти.

🎥 Усі, хто купив квиток, отримають запис конференції до кінця наступного тижня. Тож у вас ще є можливість докупити квиточок та переглянути конференцію в записі!

🔄 Також заохочуємо вас дати фідбек по організації заходу та залишити ваші контакти, якщо ви хочете спробувати себе у ролі спікера уже під час наступної конференції! Так-так, наступної! 😌
32🔥6👏2
Новий реліз Rust 1.69.0 🦀
Оригінальний текст статті тут 👈

Cargo тепер пропонує автоматично виправити деякі попередження
Починаючи з версії Rust 1.29.0, коли команда cargo fix була вперше представлена, список попереджень, що можуть бути автоматично виправлені, постійно зростає. Для того, щоб пригорнути увагу до таких покращених можливостей, тепер Cargo буле пропонувати запустити cargo fix або cargo clippy —fix, коли помічає, що деякі попередження можуть бути автоматично виправлені.

Інформація для відлагодження тепер, за замовчуванням, не додається до build скриптів
Це було зроблено, щоб покращити швидкість компіляції. Однак, через це backtrace для build скриптів буде мати менше інформації.
Якщо вам потрібно відлагодити build скрипт, ви можете додати наступний фрагмент до вашого Cargo.toml:
[profile.dev.build-override]
debug = true
[profile.release.build-override]
debug = true

Стабілізовані API
CStr::from_bytes_until_nul
core::ffi::FromBytesUntilNulError
наступні API тепер стабільні у const контексті:
{SocketAddr, SocketAddrV4, SocketAddrV6}::new
{SocketAddr, SocketAddrV4, SocketAddrV6}::ip
{SocketAddr, SocketAddrV4, SocketAddrV6}::port
SocketAddr::{is_ipv4, is_ipv6}
SocketAddrV6::{flowinfo, scope_id}
👍93
Оголошується конкурс на менторів для наступної 🎓 навчальної групи, яка стартує в червні! Програма передбачає видачу професійного сертифіката учасникам, які завершать її успішно.

Від ментора потрібна компетентність та 4 години на тиждень протягом 2-3 місяців. За вами з напарником буде закріплена група до 15 вмотивованих людей відібраних тестуванням. В 4 години входять 2-ві зустрічі з учасниками та рев'ю їх коду. Лекції читати не треба, няньчитися теж не треба, всі учасники навчальної групи матимуть міцну базу. Програма чітка та випробувана багаторічним досвідом та дюжинами ітерацій поліпшень автором програми @tyranron й менторами та учасниками попередніх bootcamp'ів.

Наразі маємо 5 менторів. Якщо вас цікавлять привілегії 🔝 менторів тоді @wandalen_me той з ким можливо обговорити вашу участь в цій ролі. Комусь ваш внесок в популяризцію Rust в Україні точно змінить життя, а ліпший спосіб добре опанувати якесь уміння це навчити когось.

https://www.youtube.com/watch?v=1kDp2OXtV6I
🎉13🔥6🥰1
Microsoft зайнята переписуванням основного коду Windows у безпечному для пам’яті Rust

https://www.theregister.com/2023/04/27/microsoft_windows_rust/

скоро на всіх БСОДах 🤯 світу:

PANIC: called Result::unwrap() on an Err value
😁25👍4🤣3🔥1🥰1
Повчальна історія про те, як проміжне програмне забезпечення на Rust допомогло Discord зекономити мільйони доларів на підтримці їх багатокористувацького чату. Ключовим компонентом системи є база даних з широкими колонками Cassandra. Discord використало асинхронний рантайм tokio для об'єднання подібних запитів на читання в базу даних з широкими колонками у один запит.

Також, для досягнення цілей Discord перейшов з Cassandra на ScyllaDB, що дозволило уникнути проблем, пов'язаних з призупиненням роботи внаслідок очищення сміття Java GC. Однак історія замовчує, чи є якісь інші переваги ScyllaDB над Cassandra.

Відеоогляд статті
Оригінальна стаття
👍21🔥3🥰2
Forwarded from Kai Ren
Любите типчики? Тоді возрадуйтесь, бо в 1.71 компіляція типо-орієнтованого коду обіцяє стати відчутно швидшою, а місця під target/ буде потрібно трішки менше:
https://github.com/rust-lang/rust/pull/111026
👍13🔥5
Друзі, ми з радістю оголошуємо набір у 🏕 Навчальний Табір по Rust - Літо 2023!

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

❇️ Навчальний табір є повністю безкоштовним та проводитиметься онлайн. Старт буткемпу запланований на 26 червня, і триватиме він близько 3 місяців.
На тебе очікує:
- перевірена роками програма
- досвідчені ментори
- дружня атмосфера
А після успішного завершення передбачена професійна сертифікація, що зробить твоє резюме більш привабливим для роботодавців.

❇️ Реєстрація на курс вже відкрита, тож реєструйся на 🏕 Rust Bootcamp - Summer 2023 вже сьогодні! Не прогав можливість покращити 🔝 свої професійні навички, поліпшити свої кар'єрні перспективи та знайти друзів серед людей із подібними 🤓 інтересами.
🔥223👍1🥰1
Друзі, підбиваємо підсумки Навчальної Rust Групи!
Анкету для участі у групі заповнило 66 учасників, 28 було зараховано і після інтенсивного навчання 9-ом з них вдалось успішно завершити курс та пройти сертифікацію, з чим ми їх і вітаємо 🥳

🔥 Наш Євангеліст Ярослав написав статтю на DOU про "Перший випуск навчальної групи з Rust".

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

Заохочуємо всіх переглянути статтю та підтримати її лайком 👍⭐️

📌 Також нагадуємо, що уже розпочався набір у Rust Bootcamp - Summer 2023, тож не зволікайте із реєстрацією!
🔥22👍4
Реліз Rust 1.70.0

Привіт, Rust ентузіатси! Пару слів про нову версії Rust - 1.70.0!

Цей реліз містить декілька цікавих змін та доповнень, які покращують API та функціональність стандартної бібліотеки.

Кілька ключових оновлень:

- Стабілізації багатьох методів Atomic та NonNull типів, дефолтів для ітераторів, BinaryHeap та BTreeMap, once_cell, фіч компіляції та cargo.
- Покращення інформативності відображення заниження версії залежностей при зміні версії до більш старої ніж була до цього в проекті
- Послаблення правил впорядкування операндів asm!, що забезпечує більшу гнучкість асемблерного коду.
- Розширено -Cdebuginfo новими опціями та іменованими псевдонімами, зокрема зменшено розмір налагоджувальної інформації для випадків, коли потрібна лише інформація про номер рядка.
- Перехід на LLD компонувальник для {arm,thumb}v4t-none-eabi
- Нові таргети для компіляції: loongarch64-unknown-linux-gnu та i586-pc-nto-qnx700, що розширює підтримку платформ.
- Додано перевірку вирівнювання для розіменування вказівників, що дозволяє виявляти невизначену поведінку під час виконання.
- Стабілізовано параметр rustdoc --test-run-directory, що полегшує виконання тестів документації.
- Оновлення до LLVM 16, що забезпечує покращення продуктивності та сумісність з останньою версією LLVM.
- "sparse" протокол Cargo тепер увімкнено за замовчуванням для читання індексу з crates.io.
- Стабілізовано два нових типи для одноразової ініціалізації спільних даних: OnceCell та його потокобезпечний аналог OnceLock.
- Після компіляції функцій #[test] виконуваний файл отримує інтерфейс командного рядка з test crate. Цей інтерфейс має низку опцій, у тому числі деякі з них ще не стабілізовано, і вони потребують вказівки опції -Zunstable-options, як і багато інших команд у наборі інструментів Rust. Однак, хоча це передбачено лише для нічних збірок, це обмеження не було активним у test - до цього часу. Починаючи з версії 1.70.0, стабільні та бета-збірки Rust більше не дозволятимуть нестабільні параметри test.

Повний апдейт ви можете прочитати тут.
Переконайтесь, що новили Rust компілятор до останньої версії, щоб скористатися всіма нововведеннями. Вдалої розробки на Rust!
👍134🫡4🔥3🥰1👌1
🦀 Наш Євангеліст Ярослав випустив чергову статтю на DOU "Чому обирають Rust".

У цій статті розкрито такі питання:
- чому бізнес вибирає Rust
- чому фахівці обирають Rust
- для чого потрібен Rust Bootcamp
- агресивна стратегія для перекваліфікації на Rust та Альтернативи

🔥 Переходьте за посиланням та підтримайте статтю вподобайкою!
🔥164
Привіт, друзі! Раді представити одну із доповідей UA Rust Conference 2023 на тему “Using WebAssembly in the backend” 🔥

У цій доповіді Андрій Сокирко розповідає:

▪️ Що таке WASM
▪️ WASM для плагінів у вашому проекті
▪️ Альтернатива контейнерам
▪️ Bytecodealliance, Components Model
▪️ Чим запустити WASM (runtimes)
▪️ Популярні рантайми написані на Rust

Переходь за посиланням та став вподобайку!
🔥245
Що нового в Rust 1.71.0

Мова

* Виправлення лінтів `{dropping,forgetting}_{references,copy_types}` які тепер видаватимуть попередження при виклику `std::mem::drop` та `std::mem::forget` на копі типах та посиланнях

Компілятор

* Прапірець компілятора який виводить інформацію про таргет деплою для Apple девайсів, їх версію та тип (macos, ios, watchos, tvos)

* Стабілізації ABIs (`extern "C"`) тепер доступні під фічею `c_unwind` які дозволяють розмотку стеку між різними мовами

* Оновлення таргету `*-linux-musl` що дозволяє використовувати time64 на 32-бітних системах

* Фіча `flatten-format-args` для генерації оптимальнішого коду макросом `println!` тепер увімкнена по дефолту.

* Дефолтний CPU для таргету `aarch64-apple-darwin` тепер Apple M1 замість Apple A14
Новий таргет `x86_64h-apple-darwin` для старих Apple девайсів

Бібліотеки

* Перероблена обробка рекурсивних панік (наприклад паніка в дропі після іншої паніки) що врятує від дедлоку при бектрейсі

* Баунд на `From<&[T]> for Box<[T]>` тепер потребує лише `T: Clone замість T: Copy`

* Прибраний баунд T: `Send на SendError<T>`, `TrySendError<T>` та `SendTimeoutError<T>`

* Стабілізації деяких методів` NonZeroI*, CStr::is_empty, BuildHasher::hash_one` та інше

Cargo

* Метадата cargo тепер включає в себе дефолтні пакети воркспейсу

* Тепер cargo буде обирати крейти по найбільш підходящій (встановленій) версії расту якщо вона вказана в інформації про крейт

* При створенні нового проекту через `cargo new`/` cargo init` у воркспейсі будуть успадковані його поля

Документація

* Новий лінт для документації '#![warn(rustdoc::unescaped_backticks)]` який попереджає про незакриті backticks

* Закреслення в документації тепер пишиться одинарними тільдами (`~~old~~` vs. `~new~`)
🎉15
Раді вам представити Software Architecture fwdays'23 — це конференція, присвячена практичним питанням архітектури програмного забезпечення 🙌. Серед тем події: Solution Architecture, System Architecture, Cloud Architecture та DevOps.
На конференції будуть українські та міжнародні експерти у сфері розробки software architecture, дискусії з ТОП-спеціалістами, розбір актуальних кейсів💪

🗓 Дата: 19 вересня та 23 вересня
🗣 Формат: онлайн та офлайн (у Києві)
🎙 Мови доповідей: українська та англійська

Є два типи квитків:
✔️ONLINE TICKET (доступ та записи всіх ефірів, Q&A зі спікерами, приватний чат, сертифікат участі)
✔️FULL TICKET (всі опції з ONLINE TICKET, Offline участь у конференції, живий нетворкінг, смачний обід та кава-брейки)

Використайте промокод 79E0FFCDE7 та отримайте знижку 10%, читайте відгуки та деталі за посиланням 👉https://bit.ly/3pVTWOZ

Також команда Fwdays шукає спікерів та спікерок! 🤓 Маєте класний практичний досвід у розробці Software Architecture та хочете виступити на конференції? Будь ласка, заповніть форму до 7 серпня!


*На правах реклами від інформаційного партнера*
👏7
🎓 Шукаємо Rust викладача в університет!

Привіт, спільното! Одна з наших цілей - інтеграція Rust 🦀 в українські університети. Зараз ми ведемо переговори і маємо попередні домовленості з декількома з кращих ВНЗ-ів України щоб інтегрувати в навчальну програму Rust. Серед них: Києво-Могилянська академія. КНУТД, Київський політехнічний інститут, УКУ та інші.

Нам бракує 🔎 тих, хто мріє про те, щоб викладати в університеті улюблену мову програмування на 1/4, 1/2, 3/4 або навіть на повну ставку. 💼 Натомість ви можете отримати викладацький досвід, внести свій вклад у розвиток освітньої системи України, а працевлаштування на 3/4 ставки дає ще й імунітет від зони бойових дій.

Звертайтесь до @wandalen_me
16🤷‍♂4👍2🫡1
Друзі, раді опублікувати наступну доповідь “Fuzz testing in Rust” із UA Rust Conference 2023 🦀
Тут доповідач Григорій Гонта розповідає:

▪️What is fuzz testing
▪️When you need it
▪️Available tools
▪️Setup initial input
▪️Understand output
▪️Demo time

Переходьте за посиланням та ставте вподобайку!
🔥114
Наступна 🎤 доповідь про “Property-Based Testing”, яка була на UA Rust conference 2023 від Сергія Потапова. У ній доповідач розповідає:

▪️Що таке property-based тести та як вони працюють
▪️У чому різниця між property-based тестами та fuzzing'ом
▪️Існуючі бібліотеки для property-based тестів та їх порівняння
▪️Наглядний приклад використання бібліотек
▪️На що варто звернути увагу

Переходь за посиланням та став вподобайку!
🔥10👌1
Forwarded from Kostyantyn Wandalen
Прекомпільований serde_derive макрос та ризики пов'язані з ним

З версії 1.0.171 serde_derive використовує прекомпільований бінарник макросу. Процедурні макорси виконуються на машині розробника, як звичайна програма та генерують код на основі вхідних аргументів. serde дуже популярний крейт і це означає, що скомпільований автором бінарник буде виконуватися на мільйонах машин, що потенційно є загрозою безпеці, бо такий бінарник має повний доступ до середовища в якому збирається програма і якщо відбудеться підміна файла на сервері то середовище розробника разом із всіма його секретами стане доступним зловмиснику.

Зі слів, dtolnay, це було зроблено з метою пришвидшення компіляції проєктів, які використовують `serde. Проте такий хід dtolnay, веде до порушення декількох умов контракту між розробником FOSS та користувачами, а саме:

- прозорість процесу компіляції - це безпекові ризики
- обіцяна кросплатформеність, - бо бінарник був зібраний лише для x64 систем.
- версіонування змін, зміна лише "патчу" 1.0.170 -> 1.0.171 порушує semver домовленість і потенційно ламає системи в продакшені ( саме так світ і дізнався про зміну сховану під капотом )

Створюється враження, що цією зміною dtolnay намагався змусити мейтнейнрів crates.io зробити зміни, котрі необхідні для оптимізації швидкості збірки. І хоча такі мотиви загальнокорисні, але методи їх досягнення через нав'язування, а також тон спілкування лишають осад, а порушення договору робить появу форка serde ймовірною.

Навіть після відкату цих нововведень мейнтейнер serde стоїть на своєму, що можна зрозуміти зокрема із опису релізу 1.0.184.
👾4🔥2😱1