Un curso práctico y autoguiado para aprender Rust desde cero, con un deep dive completo en genéricos.
Cada carpeta es un crate independiente dentro de un Cargo workspace, así que puedes ejecutar los ejemplos de forma aislada o todos juntos.
| # | Módulo | Qué aprenderás |
|---|---|---|
| 01 | Hello, World! | Tu primer programa, cargo run, estructura de un crate. |
| 02 | Variables y tipos | let, mut, shadowing, tipos escalares y compuestos. |
| 03 | Ownership y borrowing | El corazón de Rust: ownership, referencias, slices. |
| 04 | Structs y enums | Modelado de datos, Option, Result, pattern matching. |
| 05 | Colecciones | Vec, VecDeque, String, HashMap, BTreeMap, HashSet, BTreeSet, Box, Rc/RefCell. |
| 06 | Sistema de módulos | mod, pub, use, visibilidad, organización en archivos y subcarpetas (estilo moderno y clásico). |
| 07 | Manejo de errores | panic!, Result, operador ?, errores personalizados. |
| 08 | Traits | Polimorfismo, métodos por defecto, trait objects. |
| 09 | 🧬 Genéricos: deep dive | Módulo principal. Todo sobre los genéricos en Rust con 15 ejemplos. |
| 10 | Lifetimes | Anotaciones de tiempo de vida, elision rules. |
| 11 | Concurrencia | Hilos, channels, Arc, Mutex, Send/Sync. |
Si todavía no tienes Rust, instálalo con rustup:
# macOS / Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Windows
winget install --id Rustlang.RustupComprueba la instalación:
rustc --version
cargo --versiongit clone https://github.com/chapi-dev/rust101.git
cd rust101cargo buildCada módulo tiene su propio main.rs y/o varios binarios:
# Hola mundo
cargo run -p hello_world
# Colecciones (ampliado)
cargo run -p collections
# Sistema de módulos
cargo run -p modules_system
# Un binario del deep dive de genéricos
cargo run -p generics_deep_dive --bin 01_generic_functionscargo run -p generics_deep_dive --binLos genéricos son una de las herramientas más potentes de Rust y, a la vez, una de las que más confunden al venir de otros lenguajes:
- ✅ Son monomorfizados en tiempo de compilación → cero coste en runtime.
- ✅ Se combinan con traits, lifetimes, tipos asociados y const generics.
- ✅ Permiten escribir APIs reutilizables sin sacrificar seguridad ni rendimiento.
El módulo 09 cubre todo lo anterior con 15 ejemplos ejecutables y un README extenso.
Rust101/
├── Cargo.toml # workspace
├── README.md # este archivo
├── LICENSE # MIT
├── 01_hello_world/
├── 02_variables_and_types/
├── 03_ownership_and_borrowing/
├── 04_structs_and_enums/
├── 05_collections/
├── 06_modules_system/ # mod, pub, use, organización en files
├── 07_error_handling/
├── 08_traits/
├── 09_generics_deep_dive/ # ⭐ módulo principal
│ ├── Cargo.toml
│ ├── README.md # guía completa de generics
│ └── src/bin/ # 15 ejemplos ejecutables
├── 10_lifetimes/
└── 11_concurrency/
- Lee el
README.mdde cada módulo en orden. - Ejecuta los ejemplos (
cargo run -p <crate> [--bin <nombre>]). - Modifica el código, rompe cosas a propósito y observa los errores del compilador: el compilador de Rust es el mejor profesor.
- Cuando llegues al módulo 09, tómalo con calma: cada submódulo construye sobre el anterior.
- The Rust Book — la biblia.
- Rust by Example — aprende con ejemplos.
- Rustlings — pequeños ejercicios.
- The Rustonomicon — el lado oscuro (unsafe).
- Standard Library — documentación de
std.
Este material está publicado bajo licencia MIT. Úsalo, modifícalo y compártelo libremente.
Hecho con 🦀 y mucho ☕ por @chapi-dev