Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como rust

Rust, manejo de excepciones

El manejo de excepciones nos ayuda a que nuestros programas continuen su flujo a pesar de algún error o fallo existente. Rust posee mecanismos para el manejo de excepciones de una manera similar a lo que se hace en lenguajes como Java, C#, Python entre otros más. Ejemplos de manejo de excepciones en Java: try { int divide = 2 / 0 ; } catch ( ArithmeticException ex ){ ex . printStackTrace (); } int [] arreglo = { 1 , 2 , 3 }; try { int numero = arreglo [ 3 ]; } catch ( ArrayIndexOutOfBoundsException ex ){ ex . printStackTrace (); } catch ( Exception ex ){ ex . printStackTrace (); } try { int entero = Integer . parseInt ( "23f" ); } catch ( NumberFormatException ex ){ ex . printStackTrace (); } String cadena = null ; try { boolean vacio = cadena . isEmpty (); } catch ( NullPointerException ex ){ ex . printStackTrace (); } Lo que pretendemos hacer en el código de Java es: Realizar una operación...

Rust, un vistazo más (6)

Realizar pruebas unitarias es de gran ayuda para encontrar errores o depurar nuestro código. El Test Driven Development (TDD) o Desarrollo Guiado por Pruebas es una metodología para la realización de pruebas automatizadas. Rust al ser un lenguaje moderno nos permite hacer pruebas de nuestro código. El flujo de una prueba, basándonos en a lógica TDD, incluye: Pruebas que fallen ( RED ).  Pruebas que pasen ( GREEN ).  Refactorización ( BLUE ). Crearemos un proyecto con Rust: $ cargo new pruebas-unitarias && cd pruebas-unitarias Modificamos el archivo `` main.rs `` # [ cfg ( test ) ] mod tests { use super : : * ; } Con esto indicamos que estamos creando un módulo denominado `` tests ``. La palabra clave `` use `` importa elementos al ámbito actual. `` super::* `` importa todo (el comodín *) desde el módulo padre (super) del módulo tests. Esto permite que las pruebas dentro del módulo tests accedan a las funciones, estructuras u ...

Creando aplicaciones GUI con Rust (y Druid framework)

Druid es un framework para crear aplicaciones gráficas simples. Se podía decir que es un Java Swing para el lenguaje Rust . La documentación oficial dice: "El framework está orientado a datos. Comparte muchas ideas (y se inspira directamente) en frameworks de interfaz de usuario declarativos contemporáneos como Flutter , Jetpack Compose y SwiftUI , a la vez que intenta ser conceptualmente simple y, en gran medida, no mágico". Druid permite crear aplicaciones gráficas interactivas sencillas que se pueden implementar en Windows, macOS, Linux, OpenBSD, FreeBSD y la web. Druid se basa en druid-shell , que implementa todo el código de nivel inferior específico de la plataforma, proporcionando una abstracción común para funciones como eventos de teclado y ratón, la creación de ventanas y el lanzamiento de aplicaciones. Por debajo de druid-shell se encuentra piet, una biblioteca de gráficos 2D multiplataforma que proporciona una API de dibujo sencilla y familiar ...

Hola mundo con Activex Web, un framework web para Rust

En está ocasión vamos a hacer una sencilla aplicación web usando Activex Web. Activex Web es un framework web que permite la programación asíncrona. Requisitos: Es necesario contar con Rust instalado, de preferencia la última versión: $ rustc --version También debemos contar con Cargo: $ cargo --version Crearemos un directorio para nuestra aplicación y nos posicionamos en el. $ mkdir holamundorust && cd holamundorust Creamos el proyecto con Cargo: $ cargo new holamundo $ cd holamundo Editamos el archivo Cargo.toml para agregar la dependencia: Cargo.toml [package] name = " holamundo " version = " 0.1.0 " edition = " 2021 " [dependencies] actix-web = " 4 " Editamos el programa principal: main.rs use actix_web :: { get , App , HttpResponse , HttpServer , Responder } ; #[ get ( "/" ) ] async fn hello ( ) -> impl Responder { HttpResponse :: Ok ( ) .body ( ...

Frameworks web para Rust

En está ocasión veremos una lista de frameworks web para Rust . Lista de frameworks Nombre Características Actix Web : https://actix.rs/ Ventajas: Alto rendimiento (uno de los frameworks más rápidos en benchmarks), flexible, buena documentación, soporte para aplicaciones asíncronas con Tokio. Ideal para APIs RESTful y aplicaciones de alto rendimiento. Desventajas: Curva de aprendizaje inicial algo pronunciada debido a su enfoque en asincronía. Caso de uso: APIs de alto rendimiento, aplicaciones web complejas Rocket: https://rocket.rs/ Ventajas: Sintaxis sencilla y expresiva, enfocado en la facilidad de uso, integración con macros para reducir código repetitivo. Es ideal para proyectos que requieren rapidez en el desarrollo. Desventajas: Menos flexible para casos muy específicos comparado con Actix Web . Hasta hace poco, dependía de nightly Rust (aunque ahora es compatible con stable). Caso de uso: Prototipos rápidos, aplicaciones web medianas...

Odin language: el lenguaje de programación orientado a datos para un desarrollo de software sensato

En esta serie sobre lenguajes de programación hablamos de Odin , un lenguaje orientado a datos. Un nuevo lenguaje de programación que nos podrá recordar a lenguajes como C++, Python, Golang o hasta Rust. Instalación (Windows): 1 2 3 4 $ git clone https://github.com/odin-lang/Odin $ cd Odin $ git pull $ build.bat release Debemos asegurarnos de crear la variable de entorno: Nombre: ODIN_HOME Valor: C:\Users\HP\Documents\pruebasOdin\Odin Ejemplo 1. Como primer programa tendremos al clásico "Hola, mundo". holamundo.odin package holamundo import " core:fmt " main : : proc ( ) { fmt . println ( " ¡Hola, mundo desde Odin! " ) } Construimos: $ odin build holamundo . odin - file Ejecutamos: $ holamundo .exe Recordar que si usamos Visual Studio Code podemos instalar el plugin de Odin Language: https://marketplace.visualstudio.com/items?itemName=DanielGavin.ols Ejemplo 2. Programa que muestre las variables que pod...