use brings items into scope, mod declares a module, and extern crate (deprecated in modern Rust) declares a dependency from outside the current crate.
mod my_module { pub fn hello() {} }
use my_module::hello;
// extern crate is no longer needed for most dependencies in Rust 2018+
In modern Rust (2018 edition and later), you typically only use use to import items and mod to define modules; extern crate is automatically handled by the compiler for dependencies listed in Cargo.toml.