← Ко всем open source проектам

Rust

rust-lang/rust

Rust — язык системного программирования с компилятором, стандартной библиотекой и моделью владения, которая снижает класс ошибок памяти.

Форки 15,056
Автор rust-lang
Язык Rust
Лицензия Apache-2.0
Обновлено 2026-06-07

Что это такое

rust-lang/rust — основной репозиторий языка Rust. В нем живут компилятор rustc, стандартная библиотека, тесты, часть документации и инфраструктура, через которую развивается сам язык.

Rust стал заметен благодаря редкому сочетанию: производительность уровня C и C++, но с системой типов и моделью владения, которые ловят многие ошибки работы с памятью на этапе компиляции. Язык не использует сборщик мусора как обязательный слой, поэтому подходит для системного кода, серверов, встраиваемых устройств и инструментов командной строки.

Как появился и почему прижился

Публичная история Rust началась в Mozilla, где язык развивался как способ писать надежный низкоуровневый код без привычного набора ошибок C++. Позже проект стал шире одной компании: вокруг языка выросла отдельная организация, регулярные выпуски, пакетный менеджер Cargo и понятный процесс принятия изменений.

Причина популярности не только в безопасности памяти. Rust дает разработчику сильную проверку на этапе сборки, удобные перечисления, сопоставление с образцом, хорошие сообщения компилятора и единый путь для зависимостей, сборки, тестов и публикации библиотек.

Что лежит внутри

Этот репозиторий важен не только пользователям языка, но и тем, кто изучает устройство компиляторов. Здесь можно увидеть фронтальную часть языка, проверки типов, генерацию кода, стандартную библиотеку и тесты совместимости.

Небольшой пример владения

Фрагмент показывает идею перемещения значения: после передачи строки в функцию исходная переменная больше не считается владельцем данных.

Язык: Plain text
fn print_name(name: String) {
    println!("{name}");
}

fn main() {
    let name = String::from("Ferris");
    print_name(name);
    // print_name(name); // компилятор не даст повторно использовать перемещенное значение
}

Где полезен

Rust часто выбирают для инструментов, серверных компонентов, библиотек с высокими требованиями к надежности, сетевого кода, встраиваемых устройств и мест, где ошибка памяти может стоить дорого. Он также стал частым выбором для новых языковых сред и инфраструктурных проектов.

Для команды Rust требует привыкания. Модель владения и заимствования сначала кажется строгой, а время компиляции в больших проектах может быть заметным. Зато эта строгость переносит много ошибок из выполнения в сборку.

Сильные стороны и ограничения

Сильная сторона Rust — предсказуемость. Код может быть быстрым и при этом защищенным от целого класса ошибок: висячих указателей, гонок данных и части неправильной работы с памятью.

Ограничение — порог входа. Для простых скриптов или небольших интерфейсных задач Rust может быть тяжелее, чем динамический язык. Его ценность раскрывается там, где надежность, контроль ресурсов и долгий срок поддержки важнее скорости первого наброска.