Te damos la bienvenida a Comprehensive Rust 🦀

Flujo de trabajo Colaboradores de GitHub Estrellas de GitHub

Este es un curso de Rust de tres días que ha desarrollado el equipo de Android de Google. El curso abarca todo lo relacionado con Rust, desde la sintaxis básica hasta temas avanzados como los genéricos y la gestión de errores. También incluye contenidos específicos de Android el último día.

La última versión del curso se puede encontrar en https://google.github.io/comprehensive-rust/. Si lo estás leyendo en otro lugar, consulta allí para obtener actualizaciones.

Este curso está disponible en otros idiomas. Seleccione su idioma preferido en la esquina superior a la derecha, o navega a la página de [Tradduciones](Translations](running-the-course/translations.md) para una lista de todas las traducciones disponibles.

Este curso tambien está disponible como un PDF.

El objetivo del curso es enseñarte Rust. Suponemos que no sabes nada sobre Rust y esperamos lograr lo siguiente:

  • Darte un entendimiento comprensivo de la sintaxis y lenguaje Rust.
  • Permitirte modificar programas de Rust y escribir otros nuevos.
  • Enseñarte idiomática propia de Rust.

Llamamos a los cuatro primeros días del curso Fundamentos de Rust.

Basándonos en esto, te invitamos a profundizar en uno o más temas especializados:

  • Android: un curso de medio día sobre el uso de Rust en el desarrollo de la plataforma Android (AOSP). En él se incluye la interoperabilidad con C, C++ y Java.
  • Chromium: una clase de medio día sobre el uso de Rust dentro del navegador Chromium. Incluye interoperabilidad con C++ y como incorporar bibliotecas de tercer partido ("crates") en Chromium.
  • Bare Metal: una clase de un día sobre el uso de Rust para el desarrollo bare-metal (insertado). Se tratarán tanto los microcontroladores como los procesadores de aplicaciones.
  • Concurrencia: una clase de un día sobre concurrencia en Rust. Abordaremos tanto la concurrencia clásica (programación interrumpible mediante hilos y exclusiones mutuas), como la concurrencia async / await (multitarea cooperativa mediante traits future).

Objetivos que no trataremos

Rust es un lenguaje muy amplio y no podremos abarcarlo todo en unos pocos días. Algunos de los objetivos que no se plantean en este curso son los siguientes:

Suposiciones

El curso presupone que ya sabes programar. Rust es un lenguaje estáticamente tipado y, a veces, haremos comparaciones con C y C++ para explicarlo mejor o contrastar nuestro enfoque.

Si sabes programar en un lenguaje dinámicamente tipado, como Python o JavaScript, podrás seguir el ritmo sin problema.

Este es un ejemplo de una nota del orador. Las utilizaremos para añadir información adicional a las diapositivas. Puede tratarse de puntos clave que el instructor debería tratar, así como de respuestas a preguntas frecuentes que surgen en clase.