Rust
9.23K subscribers
575 photos
50 videos
3 files
1.1K links
Rust programming language

По всем вопросам- @workakkk

#VRHSZ
Download Telegram
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/
🗿12❤5👍1🥰1
Задача на 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 предложили новую атрибуцию #[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

👉 Регистрируйтесь, участие бесплатное.
❤2🔥2😡2😍1
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Rust не даст тебе написать плохой код: 4 ошибки, которые ловит компилятор

Висячая ссылка, забытый вариант в 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
👍15❤5🔥3
0 DAYS SINCE THE LAST RUST REWRITE
😁45🔥4❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥59❤11👍7🎉1