Entradas

mdBook para crear libros usando archivos Markdown

mdBook permite crear documentación estructurada en forma de libro para la web usando archivos Markdown. Sirva de ejemplo la propia guía de mdBook.

Puede instalarse descargando el binario de la aplicación, o directamente con Cargo (el administrador de paquetes de Rust) para añadir mdbook a las herramientas de cargo:

$ cargo install mdbook

GhostCell, separando permisos de los datos en Rust

El lenguaje Rust ofrece un enfoque prometedor para la programación de sistemas seguros. Un valor puede ser un alias o puede ser mutable, pero no ambas cosas al mismo tiempo.

Pero implementar estructuras de datos basadas en punteros con acceso compartido, como grafos o listas doblemente enlazadas, requiere poder mutar estados que son alias. Para admitir tales estructuras de datos Rust proporciona una serie de APIs que ofrecen la denominada mutabilidad interior: la capacidad de mutar datos usando métodos sobre una referencia compartida. Desafortunadamente, las APIs existentes sacrifican la flexibilidad, el acceso concurrente y/o el rendimiento a cambio de la seguridad.

Este artículo académico propone una API llamada GhostCell que separa de forma segura los permisos de los datos. La propuesta se acompaña de su implementación y ejemplos y de comparativas de rendimiento con otras APIs.

Sonic, indexar textos y documentos con Rust

Sonic es un software de búsqueda rápido y liviano. Una alternativa simple a los pesados ​​y llenos de funciones productos como ElasticSearch.

Normalizar las consultas de búsqueda en lenguaje natural, autocompleta y proporciona resultados relevantes.

Sonic es un índice de IDs, en lugar de un índice de documentos; cuando se consulta, devuelve un ID que luego se puede usar para hacer referencia a los documentos coincidentes en una base de datos externa.

https://crates.io/crates/sonic-server

Hablando de sitios web estáticos

Zola es un generador de sitio estático rápido en un solo binario con todo integrado. Documentación disponible en el sitio web o en la carpeta docs/content del repositorio.

Otro buscador rapidísimo con Rust para sitios estáticos

Stork indexa el contenido estático y crea un archivo que se puede cargar en el servidor web. Y proporciona una interfaz Javascript + WebAssembly para buscar en ese archivo de índice.

MeiliSearch es un motor …

MeiliSearch es un motor de búsqueda rápido, de código abierto. Tanto la búsqueda como la indexación son personalizables. Las características como la tolerancia a errores tipográficos, los filtros y los sinónimos se proporcionan de forma inmediata (aunque por ahora no está disponible en español). Más información en la documentación y en el crate para usar desde Rust.

Arrays, vectores y slices en Rust

Debido al compromiso de Rust con la seguridad en el acceso a memoria, existen algunas diferencias en el uso de arrays y vectores respecto a otros lenguajes inseguros.

Los slices, por otro lado, son un concepto nuevo, aunque muy útil.

https://hashrust.com/blog/arrays-vectors-and-slices-in-rust/

Rust, instrucciones «if let» y «while let»

  • if let es una sofisticada condición if
  • while let es un sofisticado bucle while

Ejecutan un bloque de código si una asignación funciona.

https://dev.to/nickymeuleman/rust-syntax-if-let-and-while-let-12im

Se anuncia Tokio 0.3 y se prepara el camino para la 1.0

Esta versión 0.3 funciona como una versión de Tokio 1.0 beta. Se han corregido aspectos de la API para validar los cambios antes de estabilizarlos como parte de una versión 1.0. La mayoría de estos cambios son pequeños, por lo que actualizar de la 0.2 a la 0.3 no debería ser complicado.

https://tokio.rs/blog/2020-10-tokio-0-3

Solana, una criptomoneda, pero también software basado en Rust

Este enlace no me lo guardo porque Solana sea la criptomoneda de moda, ni por su arquitectura de blockchain basada en su ya conocido algoritmo de consenso Proof of History (PoH) que permite verificar criptográficamente el paso del tiempo entre dos eventos para disparar su escalabilidad y lograr hasta 65000 transacciones por segundo.

No. Me lo guardo porque es open source, está desarrollado en Rust, y su código y mucho más está disponible en GitHub. Seguro que hay cosas interesantes para descubrir y aprender:

https://github.com/solana-labs/solana