РАЗРАБОТКА

Rust получил glob-импорты и множественные бинарники

Как Rust меняет подход к архитектуре проектов через glob-импорты, library crates и multiple binaries. Практические примеры и выводы для разработчиков.

✍️ Редакция iTech News | 03.03.2026 | ⏱ 2 мин | 👁 6 | Источник: DEV Community
🛠

Rust добавил glob-импорты, библиотечные крейты и поддержку множественных бинарников в одном проекте. Эти возможности упрощают архитектуру крупных приложений и меняют подход к структуре кода.

Glob-импорты: от явности к удобству

Оператор glob (*) импортирует все элементы модуля одной строкой. Для языка, где каждый импорт обычно указывается явно, это серьёзное упрощение.

// Импорт всех коллекций сразу
use std::collections::*;

fn example_glob() {
    let mut map = HashMap::new();
    map.insert("key", "value");
}

Экономит время, но в больших проектах может затруднить понимание происхождения типов.

Библиотечные крейты для переиспользования

Library crate меняет мышление — вместо программы создаёте переиспользуемую логику для других частей проекта.

// src/lib.rs
pub fn greet(name: &str) -> String {
    format!("Hello, {}", name)
}

pub fn farewell(name: &str) -> String {
    format!("Goodbye, {}", name)
}

Заставляет думать о публичных API и совместимости версий — ключевые навыки системной разработки.

Множественные точки входа

Rust поддерживает несколько бинарных крейтов в одном проекте — каждый с отдельной функцией main(). Подходит для CLI с подкомандами или микросервисов с общей бизнес-логикой.

// src/main.rs
use my_library::greet;

fn main() {
    println!("{}", greet("Rust"));
}

// src/bin/other_tool.rs
fn main() {
    println!("Отдельный инструмент в том же проекте");
}

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

Что меняется для разработчиков

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

Ownership + enum'ы + модули + крейты создают целостную экосистему. Следующий шаг — cargo workspaces для управления зависимостями в enterprise-проектах.

Поделиться: Telegram X LinkedIn