Crate'y i główny moduł crate'a
Struktura projektu
Crate'y i główny moduł crate'a to bezpłatna lekcja Learn Rust Coding na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn Rust Coding, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.
Czym jest crate?
Crate to najmniejsza jednostka, na której pracuje kompilator Rust. Istnieją dwa rodzaje: binary crate, kompilowany do pliku wykonywalnego, oraz library crate, od którego zależy inny kod.
Binary crate a library crate
Binary crate zawiera funkcję main i tworzy program, który można uruchomić. Library crate nie ma funkcji main; udostępnia elementy wielokrotnego użytku innym crate.
- Korzeń binary crate:
src/main.rs - Korzeń library crate:
src/lib.rs
Korzeń crate
Korzeń crate to plik źródłowy, od którego kompilator rozpoczyna pracę. Znajduje się na szczycie drzewa modułów, a słowo kluczowe crate w ścieżce odnosi się właśnie do niego.
fn main() {
crate::greet();
}
fn greet() {
println!("hello from the crate root");
}Cargo i package
Package to jeden lub więcej crate zarządzanych przez Cargo i opisanych w Cargo.toml. Package zawiera najwyżej jeden library crate oraz dowolną liczbę binary crate.
Cargo obsługuje kompilowanie, testowanie i zależności.
Minimalny plik Cargo.toml
Manifest deklaruje nazwę package, wersję i zależności. Cargo odczytuje go, aby wiedzieć, jak zbudować projekt.
[package]— nazwa, wersja, edition[dependencies]— zewnętrzne crate
Standardowy układ projektu
Cargo oczekuje konwencjonalnej struktury:
src/main.rs— korzeń binary cratesrc/lib.rs— korzeń library cratesrc/bin/— dodatkowe pliki wykonywalnetests/— testy integracyjne
Przestrzeganie konwencji oznacza brak konieczności konfiguracji.
Moduły znajdują się pod korzeniem
Korzeń crate może deklarować moduły, które tworzą drzewo modułów. Wszystko, co Pan/Pani buduje, wyrasta z tego pojedynczego pliku korzeniowego.
mod utils {
pub fn shout(s: &str) -> String {
s.to_uppercase()
}
}
fn main() {
println!("{}", utils::shout("crate"));
}Dzielenie kodu na pliki
Gdy korzeń deklaruje mod utils; ze średnikiem, Cargo wczytuje src/utils.rs. Zawartość pliku staje się treścią tego modułu, dzięki czemu wiele plików tworzy jedno drzewo.
Używanie biblioteki z binary crate
W package zawierającym zarówno lib.rs, jak i main.rs, binary crate odwołuje się do biblioteki za pomocą nazwy package. Biblioteka udostępnia elementy pub, z których korzysta binary crate.
Taki podział utrzymuje logikę w bibliotece, a punkt wejścia pozostawia niewielki.
Dodawanie zależności
Uruchom cargo add rand albo edytuj sekcję [dependencies] w Cargo.toml. Cargo pobiera crate z crates.io i udostępnia go do użycia przez use.
Cargo zapisuje także dokładne wersje w Cargo.lock, aby zapewnić powtarzalność kompilacji.
Szerszy obraz
Od najmniejszego do największego: module < crate < package. Moduły porządkują crate, korzeń crate stanowi podstawę drzewa, a package i Cargo łączą wszystko w całość.
Szybkie sprawdzenie
Sprawdź swoją znajomość struktury projektu.
Powtórzenie
Nauczył(a) się Pan/Pani struktury projektu:
- Crate jest binary crate albo library crate
- Korzeń crate (
main.rslublib.rs) stanowi podstawę drzewa modułów - Package grupuje crate i jest opisany w
Cargo.toml - Cargo zarządza układem, kompilowaniem i zależnościami
Często zadawane pytania
Czy lekcja „Crate'y i główny moduł crate'a” jest bezpłatna?
Tak — pełny tekst „Crate'y i główny moduł crate'a” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn Rust Coding, przejdź na CoddyKit PRO. Kurs Learn Rust Coding zawiera 4 lekcji w sumie.
Co nauczysz się w „Crate'y i główny moduł crate'a”?
Struktura projektu Ćwiczysz Learn Rust Coding z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn Rust Coding?
Nie wymagamy żadnego doświadczenia. Learn Rust Coding w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Crate'y i główny moduł crate'a”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn Rust Coding?
Tak. Każda lekcja Learn Rust Coding zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Moduły i mod
- pub i widoczność
- use i ścieżki
- Crate'y i główny moduł crate'a