Esta semana en Rust #18

7 de febrero del 2024

¡Hola y bienvenidos a otro número de This Week in Rust! Rust es un lenguaje de programación que permite a todo el mundo crear software fiable y eficiente. Este es un resumen semanal de su progreso y comunidad.
¿Quieres que se mencione algo? Etiquétanos en @ThisWeekInRust en Twitter o @ThisWeekinRust en mastodon.social, o envíanos una solicitud de extracción. ¿Quieres participar?
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. Si encuentra algún error en la edición de esta semana,
envíe un PR.

Actualizaciones de la comunidad de Rust 🥰

Oficial

Fundación

Actualizaciones de proyectos/herramientas

Observaciones/Pensamientos

Tutoriales de Rust

Miscelánea

Crate de la semana

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!

Llamado a la participación; Proyectos y ponentes


CFP - Proyectos

¿Siempre quisiste contribuir a proyectos de código abierto pero no sabías por dónde empezar? ¡Cada semana destacamos algunas tareas de la comunidad de Rust para que las elijas y comiences!

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í.

CFP - Ponentes

¿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.

Actualizaciones del Proyecto Rust

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

Clasificación del rendimiento del compilador de Rust

El CI de Rust estuvo a la baja la mayor parte de la semana, lo que llevó a una colección mucho más pequeña de confirmaciones de lo habitual. Los resultados son en su mayoría neutrales para la semana.

Triaje realizado por @simulacrum. Rango de revisión:
5c9c3c78.. 0984bec

0 regresiones, 2 mejoras, 1 mixta; 1 de ellos en rollups 17 comparaciones de artefactos realizadas en total

Informe completo aquí

RFC aprobados

Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios). Estos son las RFC que se aprobaron para su implementación esta semana:

  • Esta semana no se aprobaron RFC.

Período final de comentarios

Cada semana, el equipo anuncia el 'período final de comentarios' para las RFC y los PR clave que están llegando a una decisión. Expresa tus opiniones ahora.

RFC

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

Seguimiento de problemas y solicitudes de incorporación de cambios

Referencia del idioma

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

Directrices de código inseguro

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

RFC nuevas y actualizadas

Convocatoria de pruebas

Un paso importante para la implementación de RFC es que las personas experimenten con el método implementación y dar retroalimentación, especialmente antes de la estabilización. Lo siguiente
Las RFC se beneficiarían de las pruebas de usuario antes de seguir adelante:

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

Si usted es un implementador de características y desea que su RFC aparezca en la lista anterior, agregue la nueva 'llamada para pruebas' a su RFC junto con un comentario que proporcione instrucciones de prueba y/o orientación sobre qué aspecto (s) de la función
necesitan pruebas.

Próximos eventos

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

Virtual

Asia

Europa

América del Norte

Oceanía

Si está ejecutando un evento de Rust, agréguelo al calendario para obtener que se menciona aquí. Recuerde agregar un enlace al evento también.
Envíe un correo electrónico al [Equipo de la comunidad de Rust] comunidad para acceder.

Empleos

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

Frase de la semana

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