Skip to content

chapi-dev/rust101

Repository files navigation

🦀 Rust 101

Un curso práctico y autoguiado para aprender Rust desde cero, con un deep dive completo en genéricos.

Rust License: MIT Made with ❤️


📚 Índice del curso

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.

🚀 Cómo empezar

1. Instala Rust

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.Rustup

Comprueba la instalación:

rustc --version
cargo --version

2. Clona el repo

git clone https://github.com/chapi-dev/rust101.git
cd rust101

3. Compila todo el workspace

cargo build

4. Ejecuta un ejemplo

Cada 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_functions

5. Lista los binarios de un módulo multi-bin

cargo run -p generics_deep_dive --bin

🧬 ¿Por qué un deep dive en genéricos?

Los 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.


🗂️ Estructura del repositorio

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/

🧭 Cómo seguir el curso

  1. Lee el README.md de cada módulo en orden.
  2. Ejecuta los ejemplos (cargo run -p <crate> [--bin <nombre>]).
  3. Modifica el código, rompe cosas a propósito y observa los errores del compilador: el compilador de Rust es el mejor profesor.
  4. Cuando llegues al módulo 09, tómalo con calma: cada submódulo construye sobre el anterior.

📖 Recursos oficiales


📝 Licencia

Este material está publicado bajo licencia MIT. Úsalo, modifícalo y compártelo libremente.


Hecho con 🦀 y mucho ☕ por @chapi-dev

About

🦀 Rust 101: curso autoguiado con un deep dive completo en genéricos (15 ejemplos ejecutables)

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages