hostprofi.ru
Подобрать хостинг
Термин

Rust

краткое определение

Rust — системный язык с гарантиями безопасности памяти без GC. Компилятор предотвращает null pointer, use-after-free и data races на этапе сборки. Используется в Linux, Cloudflare Workers и быстрых CLI-утилитах.

Rust — системный язык программирования без сборщика мусора (GC) с гарантиями безопасности памяти на уровне компилятора. Устраняет целые классы ошибок C/C++: null pointer dereference, use-after-free, data races — до запуска программы.

Как работает система владения

Три ключевых концепции:

Ownership (Владение)
Каждое значение имеет ровно одного владельца. При выходе из области видимости память освобождается автоматически — без GC и без накладных расходов на паузы сборщика.
Borrowing (Заимствование)
Ссылки на данные: либо одна изменяемая (&mut T), либо несколько неизменяемых (&T). Две изменяемых ссылки одновременно — ошибка компиляции, не runtime-сбой.
Lifetimes (Времена жизни)
Аннотации 'a, гарантирующие что ссылка не переживёт данные, на которые указывает. Проверяется в compile time.

Применение в веб-инфраструктуре

  • Веб-серверы: Actix-web — лидер TechEmpower Framework Benchmarks по plaintext-запросам.
  • Инструменты сборки: SWC (замена Babel), esbuild-аналоги — компиляция TypeScript в 20–70× быстрее.
  • Edge/WASM: Cloudflare Workers поддерживает Rust → WASM. Nginx-модули на Rust через ngx-rust.
  • Ядро Linux: с версии 6.1 (2022) Rust официально поддерживается для разработки модулей ядра.
  • CLI-утилиты: ripgrep (замена grep), fd (замена find), bat (замена cat) — быстрее C-аналогов.

История

Rust начат Грэйдоном Хором (Graydon Hoare) в Mozilla в 2006 году как личный проект. Mozilla официально спонсировала с 2009 года — Rust использовался для разработки браузерного движка Servo. Rust 1.0 стабильный — май 2015 года. С 2016 по 2023 год Rust занимал первое место в опросах Stack Overflow как «самый любимый язык» (8 лет подряд). Rust Foundation основана в 2021 году при поддержке Google, Microsoft, Amazon, Huawei, Mozilla.

Деплой Rust в хостинге

Бинарные файлы Rust статически скомпилированы — не требуют runtime на целевом сервере. На VPS: собрать бинарник для Linux x86_64 с cargo build --release --target x86_64-unknown-linux-musl, скопировать один файл, запустить. Docker multi-stage build: сборка в rust:alpine, копирование бинарника в scratch или alpine — итоговый образ 5–15 МБ.

На что обращать внимание

Время компиляции Rust значительно — крупные проекты компилируются 5–20 минут. CI/CD использует кэш артефактов (~/.cargo) для ускорения повторных сборок. Кривая обучения — borrow checker поначалу отклоняет корректный на вид код: нужно время на понимание модели памяти. Docker образ rust:latest — 1.7 ГБ, для CI используют rust:alpine (~300 МБ).

Cargo — пакетный менеджер Rust

Cargo — встроенный пакетный менеджер и система сборки Rust. Файл Cargo.toml описывает зависимости:

[dependencies]
tokio = { version = "1", features = ["full"] }
serde = { version = "1", features = ["derive"] }
axum = "0.7"

Crates.io — реестр пакетов Rust: 140 000+ крейтов. cargo build --release — оптимизированная сборка. cargo test — встроенное тестирование. cargo clippy — линтер. cargo audit — проверка зависимостей на известные уязвимости перед CI/CD-деплоем. Tokio — асинхронный runtime для сетевых приложений на Rust, аналог Node.js event loop, но многопоточный.

Другие термины