Esta semana en Rust #18

7 de febrero del 2024

¡Hola y bienvenidos a otro número de This Week in Rust! Rust
¿Quieres que se mencione algo? Etiquétanos en @ThisWeekInRust en Twitter o @ThisWeekinRust en mastodon.social, o envíanos una solicitud de extracción
Nos encantan las contribuciones.

This Week in Rust se desarrolla abiertamente en GitHub y los archivos se pueden ver en this-week-in-rust.org
envíe un PR.









El crate de esta semana es embedded-cli-rs, una biblioteca que facilita la creación de CLI en dispositivos integrados.

¡Gracias a Sviatoslav Kokurin por la autosugestión!

[Por favor, envíen sus sugerencias y votos para la próxima semana] submit_crate!





Algunas de estas tareas también pueden tener mentores disponibles, visite la página de tareas para obtener más información.

Si eres propietario de un proyecto de Rust y estás buscando colaboradores, envía tareas aquí.


¿Eres un orador nuevo o experimentado que busca un lugar para compartir algo genial? Esta sección destaca los eventos que se están planificando y están aceptando presentaciones para unirse a su evento como orador.

  • RustNL 2024 CFP cierra 2024-02-19 | Delft, Países Bajos | Fecha del evento: 2024-05-07 & 2024-05-08
  • NDC Techtown CFP cierra 2024-04-14 | Kongsberg, Noruega | Fecha del evento: 2024-09-09 hasta 2024-09-12

Si usted es un organizador de eventos que espera ampliar el alcance de su evento, envíe un enlace al sitio web de envío a través de un PR a TWiR.


309 solicitudes de extracción fueron [fusionadas en la última semana][fusionadas]



Triaje realizado por @simulacrum
5c9c3c78.. 0984bec


Informe completo aquí


Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios)

  • Esta semana no se aprobaron RFC.


Cada semana, el equipo


  • Ninguna RFC entró en el Período de Comentarios Final esta semana.



  • Ninguna RFC de referencia lingüística entró en el Período Final de Comentarios esta semana.


  • Ninguna RFC de la Guía de Código Inseguro entró en el Período Final de Comentarios esta semana.




Las RFC se beneficiarían de las pruebas de usuario antes de seguir adelante:

  • Ninguna RFC emitió una convocatoria para pruebas esta semana.


necesitan pruebas.


Eventos oxidados entre 2024-02-07 - 2024-03-06 🦀






Si está ejecutando un evento de Rust, agréguelo al calendario
Envíe un correo electrónico al [Equipo de la comunidad de Rust] comunidad para acceder.


Por favor, vea el último hilo de Quién está contratando en r/rust


Mi opinión sobre esto es que no se puede usar Rust asíncrono de forma correcta y fluida sin entender Arc, Mutex, la mutabilidad de las variables/referencias, y cómo se compila la sintaxis asíncrona y await al final. Rust te obliga a entender cómo y por qué las cosas son como son. Te da una abstracción mínima para hacer cosas que podrían haber sido tediosas de hacer tú mismo.

tuve la oportunidad de trabajar en dos proyectos que me obligaron drásticamente a entender cómo funciona async/await. La primera es transformar una biblioteca que esté completamente sincronizada y solo requiera un rasgo de sincronización para comunicarse con el servicio externo. Todo esto suena bien, ¿verdad? Bueno, esto se convierte en un problema cuando intentamos portarlo a los navegadores. El navegador es de un solo hilo y no puede bloquear el tiempo de ejecución de JavaScript en absoluto. Podría decirse que es el entorno más extraño para los usuarios de Rust. Es simplemente imposible reescribir toda la biblioteca, ya que ya se ha enviado a producción en otras plataformas.

Lo que hicimos en su lugar fue reescribir la parte de red usando sintaxis asíncrona, pero usando nuestro propio generador. La idea es simple: el generador produce un futuro cuando se le llama, y el futuro producido puede ser esperado. ¡Pero! El futuro producido contiene un puntero de arco al generador. Eso significa que podemos alimentar el generador con el valor que estamos esperando, luego la persona que llama que tiene la referencia al generador puede devolver el resultado a la función y reanudarlo. Para el navegador, utilizamos la API nativa del navegador para derivar las comunicaciones de red; Para otras plataformas, solo usamos llamadas de red de bloqueo regulares. La interfaz externa permanece sin cambios para otras plataformas.

Honestamente, no creo que ningún otro lenguaje pueda hacer esto. Tal vez C o C++, pero que nunca tendrán la misma velocidad de desarrollo y experiencia de desarrollador.

creo que la gente ya lo ha mencionado, pero el modelo asíncrono actual de Rust es la opción más razonable. Crea problemas para los desarrolladores, pero, por otro lado, no hay un mejor modelo asincrónico para Embedded o WebAssembly.

/u/Top_Outlandishness78 en /r/rust

¡Gracias a Brian Kung por la sugerencia!

¡Por favor, envíe sus cotizaciones y vote para la próxima semana!

This Week in Rust es editado por: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.

El alojamiento de la lista de correo electrónico está patrocinado por The Rust Foundation

Discusión en r/rust