Esta semana en Rust #64
¡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.bsky.social en Bluesky o @ThisWeekinRust en mastodon.social, o envíanos un PR. ¿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, por favor envíe un PR.
¿Quieres tener TWIR en tu bandeja de entrada? Suscríbete aquí.
Actualizaciones de la comunidad de Rust 🥰
Oficial
- Encuesta de rendimiento del compilador Rust 2025
- Actualización del Consejo de Liderazgo de junio de 2025 | Dentro del blog de Rust
Fundación
Boletines
Actualizaciones de proyectos/herramientas
- registro de cambios de rust-analyzer #290
- Linebender en mayo de 2025
- La caja bzip2 cambia de C a 100% Rust
- Hypershell: Un DSL de nivel de tipo para shell-scripting en Rust
- Slint 1.12 lanzado con soporte WGPU, puerto iOS e integración de variables Figma
- Glues v0.7.0 – Aplicación para tomar notas de TUI con un nuevo motor de temas y paletas de colores
Observaciones/Pensamientos
- Rust retrobootstrapping por alguna razón
- La difícil situación del mal entendido ordenamiento de la memoria
- ¿No te atreves a ordenar tus campos de estructura cuando usas ? Tamaño
- [audio] Tembo con Adam Hendel
- [audio] Rust at Work - conversación con Eli Shalom e Igal Tabachnik de Eureka Labs
- [video] sans-io: meh
- [video] Guillaume Gomez - Rustdoc como caso de estudio de herramientas para desarrolladores
- [video] 10th Bevy Meetup - Tristan - De cero a demostración: la experiencia de un recién llegado aprendiendo Bevy
Tutoriales de Rust
- Sometiendo los cálculos de escaños en el software electoral holandés a la prueba (difusa)
- Registro de datos en Rust
- [video] Conducción de una matriz de LED usando Rust integrado asíncrono - moxi Ep2
Investigación
Miscelánea
- Hacer que la carga de imágenes GdkPixbuf de GNOME sea más segura
- Informe de empleo de mayo de 2025
- Actualización del estado social de Rust 2025.06
- Cómo funciona el rolldown: Vinculación de símbolos, resolución CJS/ESM y análisis de exportación explicados
Crate de la semana
El crate de esta semana es RobustMQ, una cola de mensajes multiprotocolo de alta generación y de próxima generación.
¡Gracias a Yu Liu por la autosugerencia!
Por favor, envíen sus sugerencias y votos para la próxima semana!
Llamadas a la realización de pruebas
Un paso importante para la implementación de RFC es que las personas experimenten con el implementación y dar retroalimentación, especialmente antes de la estabilización.
Si es un implementador de características y desea que su RFC aparezca en esta lista, agregue un 'call-for-testing' a su RFC junto con un comentario que proporcione instrucciones de prueba y/o orientación sobre qué aspectos de la función deben probarse.
-
- Esta semana no se emitieron convocatorias para pruebas por parte de Rust, RFC del lenguaje Rust, Carga o Oxidación.*
Háganoslo saber si desea que se realice un seguimiento de su función como parte de esta lista.
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 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, por favor envía tareas aquí o a través de un PR to TWiR o poniéndote en contacto con X (antes Twitter) o Mastodon!
CFP - Eventos
¿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 que están aceptando presentaciones para unirse a su evento como orador.
Si usted es un organizador de eventos que espera expandir el alcance de su evento, envíe un enlace al sitio web a través de un PR to TWiR o comunicándose en X (anteriormente Twitter) o Mastodon!
Actualizaciones del Proyecto Rust
Se [fusionaron 461 solicitudes de extracción en la última semana][fusionadas]
Compilador
- caché 'param_env' canonicalización
- Alineación temprana: evite llamadas redundantes a 'check_id'
- mover rechazo rápido al interior
- use 'MixedBitSet' para el análisis de flujo de datos de préstamos en el ámbito
- Miri: añadir bandera para suprimir el no determinismo de flotación
- Miri: podemos usar 'mul_add' de apfloat ahora
Biblioteca
- Estabilizar la función '"file_lock"'
- Estabilizar bloqueador de teclas
- add 'Vec::p eek_mut'
- añadida la implementación de 'Clone' para 'ChunkBy'
- 'fmt::D isplay' más rápido de enteros de 128 bits, sin puntero inseguro
- añadir 'bit_width' para tipos enteros sin signo
- eliminar el límite de vida innecesario de la firma de 'BTreeSet::extract_if'
Carga
- agregar completador personalizado para 'eliminación de carga<TAB>'
- resalte las palabras correctas
- refactorizar: reemplazar InternedString con Cow en IndexPackage
Rustdoc
- Proporcione más información en la información extraída de doctest
- rustdoc_json: reducir asignaciones
Rustfmt
Clippy
- Optimizar la 3ª función más pesada, (81b → 10m)
- Agregar pelusa para enlaces de documentos rotos
- Documentos: añadir enlace a 'span_lint' en diagnostics.rs
- Documentos: Hacer que los documentos de 'unbuffered_bytes' sean más consistentes
- arreglar FP de 'identity_op' al encontrar 'Default::d efault()'
- arreglar 'collapsible_else_if' FP en stmt compilado condicionalmente
- Arreglar el pánico 'needless_doctest_main' cuando doctest no es válido
- arreglar 'unit_arg' sugiere erróneamente para 'Default::d efault'
- arreglar sugerencia-causas-error de 'manual_swap'
- corrige 'manual_flatten' elimina el inútil if let
- eliminar el pase 'ClippyCtfe'
- eliminar la vida útil innecesaria
Analizador de Rust
- 'ItemTree's 'ItemVisibilities' no tiene identidad, así que deduplicar
- Agregar soporte para excluir importaciones de la búsqueda de símbolos
- Limpieza de pruebas incrementales y verificación de ejecuciones de consultas
- Agregar la revisión rápida para aumentar la visibilidad de un campo privado al diagnóstico de campo privado
- en "Rellenar brazos de coincidencia", permite a los usuarios preferir 'Self' al nombre 'enum' cuando sea posible
- inserte los paréntesis necesarios al escribir '+' en el tipo de rasgo dyn
- mostrar lo que están haciendo los metadatos de la carga en el estado
- copiar los archivos de bloqueo en el directorio de destino antes de invocar los 'metadatos de cargo'
- no forzar el descenso en derivadas para las características del IDE de goto
- Corregir la comparación de macros proc
- arreglar la finalización con algunas macros de atributos
- arreglar el manejo del servidor de macros proc de cadenas con desventajas
- ocultar sugerencias de incrustaciones de dyn para 'impl's" incompletos
- nunca haga estable el diagnóstico de discordancia de tipo, incluso cuando hay una corrección
- Recargar espacios de trabajo cuando cambien las configuraciones de carga
- Rangos de soporte con servidores de macros PROC desde antes de que cambie el ID de AST
- generar anotaciones para elementos definidos por macros si su nombre está en la entrada
- uso idiomático de la salsa para la consulta de variantes 'enum'
- mejorar las terminaciones en las condiciones de expresión if/while
- optimizar la resolución de visibilidad de 'pub(crate)' y 'pub(self)
- perf: traer de vuelta la deduplicación del árbol de elementos 'VACÍO'
- proporcionar una mejor incrementalidad cuando se cambian los elementos
- simplificar y optimizar 'ItemTree'
- convierte 'BlockId' en un '#[salsa::tracked]'
- use 'ThinVec' en 'ItemScope' en un par de lugares
Clasificación del rendimiento del compilador de Rust
Semana relativamente tranquila, con algunas mejoras en los índices de referencia aprovechando la nueva Solucionador de rasgos.
Triaje realizado por @kobzol. Rango de revisión: c31cccb7.. 45ACF54E
Resumen:
| (instrucciones:u) | media | Gama | Recuento | |:----------------------------------:|:-----:|:---------------:|:-----:| | Regresiones ❌
(primario) | 0.3% | [0.1%, 0.5%] | 14 | | Regresiones ❌
(secundaria) | 0.3% | [0.1%, 0.5%] | 52 | | Mejoras ✅
(primario) | -0,5% | [-4.8%, -0.1%] | 68 | | Mejoras ✅
(secundaria) | -4,3% | [-56.5%, -0.1%] | 85 | | Todos ❌✅ (primarios) | -0,4% | [-4.8%, 0.5%] | 82 |3 regresiones, 7 mejoras, 4 mixtas; 4 de ellos en rollups 51 comparaciones de artefactos realizadas en total
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:
- No se aprobaron RFC esta semana.
Período final de comentarios
Cada semana, el equipo anuncia el 'período final de comentarios' para las RFC y las RP clave que están llegando a una decisión. Expresa tus opiniones ahora.
Seguimiento de problemas y relaciones públicas
Rust
- Establecer MSG_NOSIGNAL para UnixStream
- Rechazar 'extern "{abi}"'s no soportados consistentemente en todas las posiciones
Carga
RFC de Rust
No hay artículos ingresados al Período Final de Comentarios esta semana para Referencia lingüística, Equipo lingüístico o Directrices de códigos inseguros.
Háganos saber si desea que se realice un seguimiento de sus solicitudes de incorporación de cambios, problemas de seguimiento o RFC como parte de esta lista.
RFC nuevas y actualizadas
Próximos eventos
Eventos oxidados entre 2025-06-18 - 2025-07-16 🦀
Virtual
- 18/06/2025 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 19/06/2025 | Híbrido (Redmond, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 19/06/2025 | Virtual (Berlín, DE) | Rust Berlín
- 19/06/2025 | Virtual (Girona, ES) | Rust Girona
- 22/06/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 24/06/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 24/06/2025 | Virtual (Londres, Reino Unido) | Mujeres en Rust
- 25/06/2025 | Virtual (Lima, PE)| Grupo de usuarios de Rust Perú
- 2025-06-26 | Virtual (Girona, ES) | Rust Girona
- 2025-06-26 | Virtual (Nürnberg, DE) | Rust de Núremberg
- 29/06/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 02/07/2025 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 03/07/2025 | Virtual (Berlín, DE) | Rust Berlín
- 03/07/2025 | Virtual (Róterdam, Países Bajos) | Desarrollo de juegos de Bevy
- 05/07/2025 | Virtual (Kampala, UG) | Reunión de Rust Circle
- 06/07/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 08/07/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 13/07/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 15/07/2025 | Virtual (Londres, Reino Unido) | Mujeres en Rust
- 15/07/2025 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 16/07/2025 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
Asia
- 28/06/2025 | Bangalore/Bangalore, IN | Rust de Bangalore
- 02/07/2025 | Seúl, KR | Encuentro de Seoul Rust (lenguaje de programación)
Europa
- 18/06/2025 | Estocolmo, SE | Estocolmo Rust
- 19/06/2025 | Aarhus, DK | Rust Aarhus
- 19/06/2025 | Edimburgo, Reino Unido | Rust y sus amigos
- 2025-06-20 | Edimburgo, Reino Unido | Rust y sus amigos
- 23/06/2025 | Londres, Reino Unido | Grupo de usuarios de Rust London
- 24/06/2025 | Manchester, Reino Unido | Rust de Manchester
- 25/06/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
- 25/06/2025 | París, FR | Región de París sistemática
- 2025-06-26 | Barcelona, ES | BcnRust
- 2025-06-26 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 2025-06-26 | París, FR | Rust Paris
- 30/06/2025 | Zagreb, RRHH | impl Zagreb para Rust
- 01/07/2025 | Gdansk, PL | Rust Gdansk
- 02/07/2025 | Basilea, CH | Basilea Rust
- 02/07/2025 | Londres, Reino Unido | Grupo de Meetup de Oxford Rust
- 02/07/2025 | Posnan, PL | Rust Polonia
- 05/07/2025 | Estocolmo, SE | Estocolmo Rust
- 08/07/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
- 09/07/2025 | Girona, ES | Rust Girona
- 09/07/2025 | Reading, Reino Unido | Taller de lectura de Rust
- 15/07/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
América del Norte
- 18/06/2025 | Híbrido (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 19/06/2025 | Híbrido (Redmond, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 19/06/2025 | Ciudad de México, MX | Rust MX
- 19/06/2025 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 19/06/2025 | Redmond, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 2025-06-20 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 25/06/2025 | Austin, TX, Estados Unidos | Rust ATX
- 2025-06-26 | Los Ángeles, CA, EE. UU. | Rust Los Ángeles
- 2025-06-26 | Los Ángeles (Chino Hills), CA, ESTADOS UNIDOS | Red Vara
- 2025-06-26 | Spokane, WA, EE. UU. | Rust de Spokane
- 28/06/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 03/07/2025 | Montreal, QC, CA | Rust Montreal
- 03/07/2025 | Saint Louis, MO, EE. UU. | STL Rust
- 06/07/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 09/07/2025 | Phoenix, AZ, EE. UU. | Rust del desierto
- 15/07/2025 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
Oceanía
- 24/06/2025 | Barton, AC, AU | Grupo de usuarios de Canberra Rust
- 30/06/2025 | Collingwood, VI, AU | Rust Melbourne
América del Sur
- 2025-07-12 | São Paulo, BR | Encuentro de Rust São Paulo
Si está ejecutando un evento de Rust, agréguelo al calendario para obtener que se menciona aquí. Por favor, recuerde agregar un enlace al evento también. Envíe un correo electrónico al Equipo de la comunidad de Rust para acceder.
Empleos
Por favor, consulte el último hilo de Quién está contratando en r/rust
Frase de la semana
Pero después de unas semanas, se compiló y los resultados nos sorprendieron. El código fue 10 veces más rápido que nuestra implementación de Kotlin cuidadosamente ajustada, a pesar de que no se intentó hacerlo más rápido. Para poner esto en perspectiva, habíamos pasado años mejorando gradualmente la versión de Kotlin de 2,000 a 3,000 transacciones por segundo (TPS). La versión de Rust, escrita por desarrolladores de Java que eran nuevos en el lenguaje, registró 30,000 TPS.
Este fue uno de esos momentos que cambia fundamentalmente tu forma de pensar. De repente, el par de semanas que pasamos aprendiendo Rust ya no parecía un gran problema, en comparación con el tiempo que nos habría llevado obtener los mismos resultados en la JVM. Dejamos de preguntarnos: "¿Deberíamos usar Rust?" y comenzamos a preguntar: "¿Dónde más podría Rust ayudarnos a resolver nuestros problemas?"
– Dr. Werner Vogels en su blog
¡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, U007D, joelmarcey, mariannegoldin, bennyvasquez, bdillo
El alojamiento de la lista de correo electrónico está patrocinado por The Rust Foundation