Rust, который наконец становится понятным 🦀
Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отдельный вид боли?
Этот курс проведёт тебя с самого начала до уровня, где ты уже пишешь реальные системные и сетевые программы.
Ты разберёшь:
Ownership → Borrowing → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код
Никакого бесконечного чтения документации. После каждого урока ты сразу пишешь код, проходишь тесты и решаешь задачу с автопроверкой.
🔥 Rust с нуля
🔥 5–6 часов в неделю
🔥 Практика после каждого урока
🔥 Подойдёт после Python, JavaScript, Java и других языков
🔥 Можно начать сразу
В конце у тебя будет понимание Rust, с которым уже можно писать быстрые backend-сервисы, сетевые приложения и системные утилиты, а не смотреть на borrow checker как на врага.
Пора добавить Rust в свой стек. Начинай курс и пиши первый код уже сегодня: https://stepik.org/a/294885/
Давно хочешь выучить Rust, но ownership, borrowing и lifetimes выглядят как отдельный вид боли?
Этот курс проведёт тебя с самого начала до уровня, где ты уже пишешь реальные системные и сетевые программы.
Ты разберёшь:
Ownership → Borrowing → ошибки → коллекции → Generics → Traits → модули → тесты → сетевой код
Никакого бесконечного чтения документации. После каждого урока ты сразу пишешь код, проходишь тесты и решаешь задачу с автопроверкой.
🔥 Rust с нуля
🔥 5–6 часов в неделю
🔥 Практика после каждого урока
🔥 Подойдёт после Python, JavaScript, Java и других языков
🔥 Можно начать сразу
В конце у тебя будет понимание Rust, с которым уже можно писать быстрые backend-сервисы, сетевые приложения и системные утилиты, а не смотреть на borrow checker как на врага.
Пора добавить Rust в свой стек. Начинай курс и пиши первый код уже сегодня: https://stepik.org/a/294885/
🗿12❤5👍1🥰1
Rust
Discord переписывают на Rust. Electron отправляют на пенсию Технический директор Discord Станислав Вишневский подтвердил, что компания разрабатывает новый клиент на Rust, полностью отказываясь от Electron на десктопе и React Native на мобильных устройствах.…
This media is not supported in your browser
VIEW IN TELEGRAM
Новое мобильное приложение Discord!
Слева: приложение на Electron.
Справа: Rust + GPUI.
По ощущениям, интерфейс реагирует мгновенно.
Слева: приложение на Electron.
Справа: Rust + GPUI.
По ощущениям, интерфейс реагирует мгновенно.
🔥68👍7❤5🤯4
Задача на Rust с подвохом: палиндром после одного удаления
Дана строка
При этом строка может содержать Unicode, а удалять разрешается именно один
Условия:
Строка может быть уже палиндромом, но удалить один символ всё равно обязательно.
Использовать
Желательная сложность решения: O(n) по времени.
Подвох в том, что обычная проверка палиндрома двумя указателями здесь недостаточна. Нужно правильно обработать первое несовпадение и случай, когда исходная строка уже симметрична.
Как бы вы решили эту задачу на Rust без перебора всех возможных удалений?
Дана строка
s. Нужно определить, можно ли удалить ровно один символ, чтобы оставшаяся строка стала палиндромом.При этом строка может содержать Unicode, а удалять разрешается именно один
char, а не один байт.
fn can_be_palindrome_after_one_deletion(s: &str) -> bool {
// Ваш код
}
fn main() {
assert!(can_be_palindrome_after_one_deletion("racecar"));
assert!(can_be_palindrome_after_one_deletion("абвба"));
assert!(can_be_palindrome_after_one_deletion("abca"));
assert!(!can_be_palindrome_after_one_deletion("abcdef"));
}
Условия:
Строка может быть уже палиндромом, но удалить один символ всё равно обязательно.
Использовать
s.as_bytes() для сравнения символов нельзя, поскольку один Unicode-символ может занимать несколько байт.Желательная сложность решения: O(n) по времени.
Подвох в том, что обычная проверка палиндрома двумя указателями здесь недостаточна. Нужно правильно обработать первое несовпадение и случай, когда исходная строка уже симметрична.
Как бы вы решили эту задачу на Rust без перебора всех возможных удалений?
❤2🥴2🔥1🥰1🥱1🖕1
Rust может научиться автоматически стирать секреты из памяти при выходе из функции
В Rust предложили новую атрибуцию
Сейчас разработчики используют библиотеку
Новая идея предполагает, что компилятор будет самостоятельно очищать:
- Локальные данные в стеке функции.
- Временные копии и spill slots, созданные при генерации машинного кода.
- Остаточные значения в регистрах процессора.
Предлагаемый синтаксис:
Самое интересное: очистка должна происходить на уровне машинного кода после распределения регистров и формирования стека. Это позволяет учитывать даже временные копии, о которых разработчик может не знать.
Есть важные ограничения: каждая функция, работающая с секретами, должна отдельно включать такую защиту. Аннотация одной функции не очистит стек её незащищённых помощников. Кроме того, реализация будет зависеть от поддержки конкретного компилятора и целевой платформы.
Предложение пока находится на стадии Pre-Pre-RFC. Это обсуждение концепции, а не готовая возможность стабильного Rust.
Если идею реализуют, это станет серьёзным шагом для криптографических библиотек, систем аутентификации и приложений, работающих с конфиденциальными данными.
Обсуждение: https://internals.rust-lang.org/t/pre-pre-rfc-zeroize-on-return-for-function-boundary-zeroization/24796
В Rust предложили новую атрибуцию
#[zeroize_on_return], которая должна решить одну из неприятных проблем системного и криптографического программирования: остатки секретных данных в памяти после завершения функции.Сейчас разработчики используют библиотеку
zeroize, чтобы вручную очищать пароли, ключи шифрования и другие чувствительные данные. Но есть проблема: компилятор может создавать дополнительные копии значений в регистрах и стеке, которые обычная очистка не затрагивает.Новая идея предполагает, что компилятор будет самостоятельно очищать:
- Локальные данные в стеке функции.
- Временные копии и spill slots, созданные при генерации машинного кода.
- Остаточные значения в регистрах процессора.
Предлагаемый синтаксис:
#[zeroize_on_return]
pub fn process_secret(
key: &Key,
input: &[u8],
) -> Output {
// Работа с секретными данными
}
Самое интересное: очистка должна происходить на уровне машинного кода после распределения регистров и формирования стека. Это позволяет учитывать даже временные копии, о которых разработчик может не знать.
Есть важные ограничения: каждая функция, работающая с секретами, должна отдельно включать такую защиту. Аннотация одной функции не очистит стек её незащищённых помощников. Кроме того, реализация будет зависеть от поддержки конкретного компилятора и целевой платформы.
Предложение пока находится на стадии Pre-Pre-RFC. Это обсуждение концепции, а не готовая возможность стабильного Rust.
Если идею реализуют, это станет серьёзным шагом для криптографических библиотек, систем аутентификации и приложений, работающих с конфиденциальными данными.
Обсуждение: https://internals.rust-lang.org/t/pre-pre-rfc-zeroize-on-return-for-function-boundary-zeroization/24796
❤38👍21🔥10🤯1
Media is too big
VIEW IN TELEGRAM
⚠️ База тормозит. Вы открываете мониторинг — уже все в норме. Короткий инцидент не попал на графики. Причина неясна, и непонятно, что исправлять, чтобы задержки не вернулись.
🖥 Postgres Pro Enterprise Manager (PPEM) объединяет мониторинг, диагностику и администрирование БД в одном интерфейсе:
📊 Active Session Engine помогает найти причину по истории активных сессий и ожиданий.
🔎 HealthCheck Advisor анализирует нагрузку и дает рекомендации по устранению проблем.
🤖 ИИ-ассистент Ask Postgres дает советы по диагностике и администрированию.
🎙 Приходите 12 ноября на бесплатный вебинар Postgres Professional за подробностями. Эксперты покажут PPEM в работе и проведут демо управления отказоустойчивыми кластерами.
🗓 12 ноября, четверг, 11:00
👉 Регистрируйтесь, участие бесплатное.
🖥 Postgres Pro Enterprise Manager (PPEM) объединяет мониторинг, диагностику и администрирование БД в одном интерфейсе:
📊 Active Session Engine помогает найти причину по истории активных сессий и ожиданий.
🔎 HealthCheck Advisor анализирует нагрузку и дает рекомендации по устранению проблем.
🤖 ИИ-ассистент Ask Postgres дает советы по диагностике и администрированию.
🎙 Приходите 12 ноября на бесплатный вебинар Postgres Professional за подробностями. Эксперты покажут PPEM в работе и проведут демо управления отказоустойчивыми кластерами.
🗓 12 ноября, четверг, 11:00
👉 Регистрируйтесь, участие бесплатное.
❤2🔥2😡2😍1
This media is not supported in your browser
VIEW IN TELEGRAM
Висячая ссылка, забытый вариант в match, null и гонка данных между потоками. В C и C++ такие баги находят пользователи, а Rust останавливает сборку и показывает ошибку ещё до первого запуска.
Запускаем полный бесплатный курс по Rust для новичков: https://www.youtube.com/playlist?list=PLS7ref2UKTvQ
1 урок Урок 1: введение, установка и первая программа : https://youtu.be/98KlcWVYiXw
2 урок Переменные и типы в Rust: почему x = 6 не скомпилируется: https://youtu.be/7phhK4G02ws
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1👍1🥰1🤣1🖕1🗿1😡1
🔐 Кто подключён к твоему Wi-Fi и насколько сложно подобрать пароль?
Airgorah - открытый инструмент для аудита беспроводных сетей с графическим интерфейсом. Написан на Rust, работает на Linux.
В одном приложении можно:
• Найти точки доступа и подключённые устройства.
• Захватить Wi-Fi-трафик.
• Проверить устойчивость клиентов к принудительному отключению.
• Перехватить handshake или PMKID и проверить пароль подбором.
Для работы нужен Wi-Fi-адаптер с поддержкой monitor mode и packet injection. Стойкий пароль не становится уязвимым просто от того, что удалось перехватить handshake.
Подойдёт для домашней лаборатории и проверки сетей, на аудит которых у вас есть разрешение.
💻 https://github.com/martin-olivier/airgorah
Airgorah - открытый инструмент для аудита беспроводных сетей с графическим интерфейсом. Написан на Rust, работает на Linux.
В одном приложении можно:
• Найти точки доступа и подключённые устройства.
• Захватить Wi-Fi-трафик.
• Проверить устойчивость клиентов к принудительному отключению.
• Перехватить handshake или PMKID и проверить пароль подбором.
Для работы нужен Wi-Fi-адаптер с поддержкой monitor mode и packet injection. Стойкий пароль не становится уязвимым просто от того, что удалось перехватить handshake.
Подойдёт для домашней лаборатории и проверки сетей, на аудит которых у вас есть разрешение.
💻 https://github.com/martin-olivier/airgorah
👍15❤5🔥3