Instalar Rust en Linux#

En mi proceso por aprender Rust, iré compartiendo algunos pasos con ustedes. En esta ocasión, como instalar Rust en Linux, y prepararnos para usarlo en VSCode y en Notebook.

Rust es un lenguaje de bajo nivel, desarrollado con el patrocinio de Mozilla, enfocado en el rendimiento y seguridad, con muy buenas validaciones en tiempo de compilación que nos ayudará a prevenir algunos errores en tiempo de ejecución. Por diseño, intenta dar mayor ergonomía que un lenguaje de bajo nivel, al tiempo que permite un mayor control.

Instalación#

La instalación recomendada es con la herramienta rustup, para esto procedemos con

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Esto descarga rustup, e inicia el proceso de instalación de Rust y otras utilidades. Allí podemos aceptar la opción por defecto con enter.

Así tendremos instalados cargo (el gestor de paquetes de Rust), clippy (el linter integrado de Rust), rust-docs (documentación de Rust), rust-std (la biblioteca estándar de Rust), rustc (el compilador de Rust) y rustfmt (el formateador de código Rust). Y por supuesto, el mismo rustup que nos permite gestionar el toolchain de Rust.

Respecto a cargo, hay que decir algo interesante, y es que el gestor integra la ejecución de pruebas (cargo test) que es una opción también del compilador, y la generación de documentación (cargo doc) con rustdoc.

Ahora terminamos con

source "$HOME/.cargo/env"

Esto nos permite asociar las variables de ambiente necesarias en la consola actual.

Si ahora ejecutamos rustc --version, debemos ver la versión del compilador. Si no lo ves, puede que hayas omitido el paso anterior para asociar la variable de entorno.

Cuando deseemos actualizar la versión del compilador, usaremos rustup update.

Configurar VSCode#

Para tener la ayuda necesaria en nuestra IDE de VSCode al programar en Rust, vamos a instalar la extensión rust-analyzer. Esta extensión nos provee de opciones de autocompletado, ir a definiciones, búsqueda de referencias, acceso a documentación, resaltado semántico, asistencia y sugerencias. Esto lo tenemos como beneficio gracias a la implementación del LSP (Language Server Protocol) para Rust.

Rust Analyzer se encuentra disponible también para otros editores.

Podemos iniciar con un pequeño proyecto por defecto para ver la extensión en acción, así como nuestra instalación base. Para crear un nuevo, usamos

cargo new miniproyecto

Esto crea una plantilla básica de proyecto de aplicación Rust, con los archivos de dependencias de Cargo y el directorio de fuente con un hola mundo. Podemos usar un código básico errónea y verlo en acción.

Diagnóstico de rust analyzer sugiriendo el uso de let para asignar una variable

Diagnóstico de rust analyzer sugiriendo el uso de let para asignar una variable.#

Rust Notebook#

Ahora, tenemos opción de agregar un kernel Rust a Jupyter Notebook para tener una experiencia interactiva de Rust, mezclada con el beneficio de documentar de forma natural. Esto lo podemos lograr gracias al kernel Evcxr.

Instalamos con cargo la dependencia necesaria primero.

cargo install --locked evcxr_jupyter

Una vez instalado, debemos tener en cuenta de tener activo el ambiente en el que disponemos nuestra instalación de Jupyter Notebook (en caso de tenerlo en un ambiente). Si no tenemos instalado, en Ubuntu podemos proceder como:

sudo apt install -y jupyter-notebook

O con el gestor de paquetes de Python (instalamos también jupyterlab), como:

pip install notebook jupyterlab

Ahora, agreguemos el Kernel a Notebook.

evcxr_jupyter --install

Una vez agregado, podemos abrir Notebook o Jupyterlab, y veremos la opción para usar Rust.

jupyter notebook  # Abrir notebook
jupyter lab  # Abrir Jupyterlab (recomendado)
Disponibilidad de Rust como Kernel en Jupyter Notebook

Disponibilidad de Rust como Kernel en Jupyter Notebook#

Ejemplo básico de asignación de variable de Rust en Notebook

Ejemplo básico de asignación de variable de Rust en Notebook#