Esta semana en Rust #76
¡Hola y bienvenidos a otro número de This Week in Rust! Rust es un lenguaje de programación que permite a todos crear software confiable 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íenos 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.
¿Quieres TWIR en tu bandeja de entrada? Suscríbete aquí.
Actualizaciones de la comunidad de Rust 🥰
Oficial
Boletines
- El Rustacean Incrustado Issue #54
- Rust Trends Issue #70: Movimientos de cimentación y avances en el rendimiento
Actualizaciones de proyectos/herramientas
- Cot v0.4: Particularmente perezoso
- Anuncio de Diesel 2.3
- Un adelanto de SeaORM 2.0
- Anuncio de Pingoo: el equilibrador de carga / API Gateway rápido y seguro con descubrimiento de servicios y WAF integrados
- Rerun 0.25.0 - Resaltado de sintaxis, filtrado de tablas, objetos transparentes
- Introducción a Obelisco 0.24.1
- Presentación de CurveForge
- Swiftide 0.31
- HotPath 0.2.5 - Un simple generador de perfiles de rendimiento y memoria
Observaciones/Pensamientos
- La lógica basada en piratas de las referencias compartidas de Rust
- Depuración asíncrona integrada e inspección-embajada
- Sé simple
- Por qué construimos nuestro propio analizador SQL desde cero: una historia de implementación de Rust
- Comparación de la resolución de la versión de dependencia transitiva en Rust y Java
- Compensaciones en el diseño de DSL
- Rust Algorithm Bites – Validación de un árbol de búsqueda binario
- Rust en Android - Lecciones desde el borde
Tutoriales de Rust
- Serie de backend de Axum: Docker, base de datos y agrupación de conexiones
- Las reglas ocultas detrás de las funciones y cierres de Rust
- Pruebas unitarias de Rust: código asíncrono
- Trazado de rayos en un fin de semana - En Rust
- Nuevo esquema: cómo ahorrar $ 327.6 millones usando Rust
- [serie] Reloj en tiempo real - Libro de controladores integrados de Rust
Miscelánea
- [audio] Netstack.FM — Un podcast sobre redes y Rust
- [video] Entrevista de Jan David Nose, equipo de infraestructura de Rust (contenido del proyecto Rust @ RustConf 2025)
- Informe de empleos de Rust de agosto de 2025
- La simbiosis de Rust y Arm: una conversación con David Wood
Crate de la semana
El crate de esta semana es asciinema, una conocida herramienta de línea de comandos para grabar, reproducir y transmitir sesiones de terminal recientemente reescritas en Rust.
A pesar de la falta de sugerencias, llogiq está muy contento con su elección.
Por favor, envíe sus sugerencias y votos para la próxima semana!
Convocatorias 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 funciones y desea que su RFC aparezca en esta lista, agregue un 'llamada para pruebas' a su RFC junto con un comentario que proporcione instrucciones de prueba y / o orientación sobre qué aspectos de la función necesitan ser probados.
-
- No se emitieron llamadas para pruebas esta semana por Rust, RFC del lenguaje Rust, Carga o Oxidación.*
Háznoslo saber si desea que se realice un seguimiento de su función como parte de esta lista.
Convocatoria de participación; Proyectos y ponentes
CFP - Proyectos
¿Siempre quiso contribuir a proyectos de código abierto pero no sabía 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í o a través de un PR a TWiR o poniéndote en contacto con X (anteriormente 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 están aceptando presentaciones para unirse a su evento como orador.
No se enviaron convocatorias de artículos o presentaciones esta semana.
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 a TWiR o comunicándose en X (anteriormente Twitter) o Mastodon!
Actualizaciones del Proyecto Rust
Se fusionaron 379 solicitudes de extracción en la última semana]
Compilador
- implementar '#[rustc_align_static(N)]' en 'estáticos
- mover más lints amortiguados tempranos a Dyn Lint Diagnostics
- hacer que 'AssocItem' sea consciente de su tipo de implementación
- Coincide con el ensamblaje 'va_arg' de Clang en objetivos de brazo
- rechazar sufijos literales no válidos en la indexación de tuplas, la indexación de tuplas 'struct' y la posición del nombre de campo 'struct'
- ordenar correctamente las sugerencias de implementación de rasgos de matriz
- Strip Frontmatter en menos lugares
- MIRI: Corregir la sincronización de release/scquire para cargas desde el búfer de almacenamiento
- MIRI: Haz que un Hola Mundo Básico funcione en WASIP2
Biblioteca
- constify Eq, Ord, PartialOrd
- implemente 'Suma' y 'Producto' para 'f16' y 'f128'
- incluido 'Rango': cambiar 'fin' por 'último'
- hacer 'Barrera' 'RefUnwindSafe' de nuevo
- estabilizar 'BTree{Map,Set}::extract_if'
- admite literales enteros en '${concat()}'
Carga
- cli: Permitir finalizaciones para nombres de subcomandos de terceros
- completer: Se ha añadido la finalización de la bandera '--features'
- completo: Mostrar cajas/características locales sobre otros miembros
- frontmatter: Pruebe vallas de código len alternativas
- manifiesto: Mostrar fuente de error a los usuarios
- publicar: Cambiar la línea 'ctrl-c en espera' a un mensaje de ayuda
Rustdoc
Clippy
- 'elidable_lifetime_names': evitar la superposición de tramos en las sugerencias
- 'len_zero': no llames ansiosamente a 'GenericArgs::type_at'
- 'multiple_unsafe_ops_per_block': ignorar las operaciones inseguras de '.await' desugaring
- 'needless_closure': no pelar en 'AsyncFn*'s
- 'needless_return': corregir el falso positivo con el código 'cfg'd después de la devolución
- 'ref_option': no pelar en macros externas y proc
- 'semicolon_inside_block': no pelar si el bloque está entre paréntesis
- 'use_self': no devuelve anticipadamente si el tipo externo no tiene vidas
- añadir sugerencia a 'cast_sign_loss' y 'cast_possible_wrap' usando los métodos 'cast_{un,}signed()'
- corregir 'as_underscore' para sugerir solo cuando sea sugestionable
- corregir 'invalid_upcast_comparisons' macros mal destruídas
- corregir 'useless_attribute' falso positivo en 'deprecated_in_future'
- reconocer el patrón canónico '?' con 'Resultado'
Analizador de Rust
- agregar más trucos de solución para diagnósticos de inicio incorrectos
- corregir 'LifetimeParam::lifetime_bounds' implemento no válido
- arreglar punto y coma adicional antes de else en let-stmt
- corregir sangría para correcciones 'unresolved_field'
- siempre coaccionar en un lanzamiento, incluso cuando hay tipos desconocidos
- no marque el tipo desconocido como implementando todos los rasgos notables
- no genere una lista de parámetros genéricos vacía en 'generate_function'
- no active dos flychecks al guardar archivos que forman parte de los objetivos
- corregir la expansión de macros recursivamente que no funcionaba correctamente para llamadas de macros anidadas
- corregir la normalización en el nuevo solucionador
- bucle infinito mientras se elaboran predicados
- hacer que '#[target_feature]' sea siempre seguro en WASM
- filtrado de cláusulas más preciso para 'explicit_*_predicates_of'
- solo calcule rutas inestables en cadenas de herramientas nocturnas para características IDE
- resolver rutas a bibliotecas de prueba de instantáneas absolutamente
- migrar 'InferenceTable' al siguiente solucionador
Triaje de rendimiento del compilador de Rust
Semana difícil de interpretar, porque un cambio positivo en #145910 funciona un poco peor en nuestros puntos de referencia de lo que lo haría en el mundo real. El resultado general probablemente siga siendo ligeramente negativo, porque hay más trabajo de características adicionales. Por otro lado, también tenemos una buena mejora en la reducción del número de dependencias de consulta en el sistema incremental del compilador en #145186.
Triaje realizado por @panstromek. Rango de revisión: f13ef0d7.. 52618eb3
Resumen:
| (instrucciones:U) | media | Gama | recuento |
|:----------------------------------:|:-----:|:--------------:|:-----:|
| Regresiones ❌
(primaria) | 0,5% | [0,2%, 2,7%] | 72 |
| Regresiones ❌
(secundaria) | 0,7% | [0,0%, 3,5%] | 96 |
| Mejoras ✅
(primaria) | -0,5% | [-0,9%, -0,1%] | 10 |
| Mejoras ✅
(secundario) | -0,8% | [-2,9%, -0,1%] | 41 |
| Todos ❌✅ (primarios) | 0,4% | [-0,9%, 2,7%] | 82 |
1 Regresión, 1 Mejora, 6 Mixto; 3 de ellos en rollups 36 comparaciones de artefactos realizadas en total
RFC aprobados
Los cambios en Rust siguen el proceso de Rust RFC (solicitud de comentarios). Estos son los RFC que fueron aprobados para su implementación esta semana:
- No se aprobaron RFC esta semana.
Período de comentarios finales
Cada semana, el equipo anuncia el "período de comentarios finales" para RFC y PR clave que están llegando a una decisión. Expresa tus opiniones ahora.
Problemas de seguimiento y PRs
Rust
- Permitir &raw '[mut | const]' para el campo de unión en código seguro
- Denegar por defecto nunca escribir pelusas
- Divida de manera oportunista '!=' para analizar correctamente nunca escribir
- Permitir especificar varios límites para el mismo elemento asociado, excepto en objetos de característica
- rustdoc: ocultar '#[repr]' si no es parte del ABI público
Ningún artículo entró en el período de comentarios finales esta semana para RFC de Rust, Carga, Equipo de idiomas, Referencia del idioma, Consejo de Liderazgo o Pautas de código inseguro.
Háganos saber si desea que se realice un seguimiento de sus PR, problemas de seguimiento o RFC como parte de esta lista.
RFC nuevos y actualizados
- RFC: '#[cfg(since(rust, "1.95"))]' para la compilación condicional de la versión de Rust
- Aplicación de la mitigación
- RFC para '#[stable(desde)]'
Próximos eventos
Rusty Eventos entre 2025-09-17 - 2025-10-15 🦀
Virtual
- 2025-09-17 | Virtual (Vancouver, BC, CA) | Rust de Vancouver
- 2025-09-18 | Virtual (Núremberg, DE) | Rust de Nuremberg
- 2025-09-23 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 2025-09-25 | Virtual (Berlín, Alemania) | Rust Berlin
- 2025-09-28 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 2025-10-01 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 2025-10-04 | Virtual (Kampala, UG) | Encuentro del Círculo de Rust
- 2025-10-05 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 2025-10-07 | Virtual (Beijing, CN) | WebAssembly y Rust Meetup (Wasm Empowering AI)
- 2025-10-09 | Virtual (Berlín, Alemania) | Rust Berlin
- 2025-10-09 - 2025-10-10 | Híbrido (París, Francia) | EuroRust
- 2025-10-12 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 2025-10-14 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 2025-10-15 | Virtual (Vancouver, BC, CA) | Rust de Vancouver
Asia
- 2025-09-17 | Tel Aviv-yafo, IL | Rust 🦀 TLV
- 2025-10-02 | Seúl, KR | Reunión de Seoul Rust (lenguaje de programación)
- 2025-10-04 | Bangalore, IN | Rust Bangalore
- 2025-10-08 | Kuala Lumpur, MY | Rust Malasia
- 2025-10-09 | Tokio, JP | Encuentro de Tokyo Rust
Europa
- 2025-09-17 | Girona, ES | Rust Girona | Silicio Girona
- 2025-09-18 | Aarhus, DK | Rust Aarhus
- 2025-09-23 | París, FR | Rust París
- 2025-09-24 | Gotemburgo, SE | Rust, Göteborg
- 2025-09-24 | München, DE | Rust Múnich
- 2025-09-25 | Augsburgo, DE | Rust Augsburg
- 2025-09-25 | Londres, Reino Unido | Mujeres en Rust
- 2025-09-27 | Estocolmo, SE | Rust de Estocolmo
- 2025-09-30 | Londres, Reino Unido | Grupo de usuarios de Rust London
- 2025-10-01 | Olomouc, CZ | Rust Moravia
- 2025-10-02 | Oslo, NO | Rust Oslo
- 2025-10-08 | París, FR | Rust París
- 2025-10-08 | Girona, ES | Rust Girona | Silicio Girona
- 2025-10-08 | Reading, Reino Unido | Taller de lectura de Rust
- 2025-10-09 - 2025-10-10 | Híbrido (París, Francia) | EuroRust
- 2025-10-14 | Basilea, CH | Rust Basel
América del Norte
- 2025-09-18 | Seattle, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 2025-09-20 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 2025-09-21 | Detroit, MI, EE. UU. | Rust de Detroit
- 2025-09-24 | Austin, TX, EE. UU. | Rust ATX
- 2025-09-24 | Charlottesville, VA, EE. UU. | Encuentro de Charlottesville Rust
- 2025-09-24 | Chicago, IL, EE. UU. | Reunión de Chicago Rust
- 2025-09-24 | Nueva York, NY, EE. UU. | Rust NYC
- 2025-09-25 | Atlanta, GA, EE. UU. | Rust Atlanta
- 2025-09-25 | Nashville, TN, EE. UU. | Desarrolladores de Music City Rust
- 2025-09-27 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 2025-09-30 | Boston, MA, EE. UU. | Reunión de Boston Rust
- 2025-10-02 | Saint Louis, MO, EE. UU. | STL Rust
- 2025-10-04 | Boston, MA, EE. UU. | Reunión de Boston Rust
Oceanía:
- 2025-10-01 | Perth, WA, AU | Grupo de encuentro de Rust Perth
Si está organizando 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][community] para obtener acceso.
Empleos
Por favor, vea el último hilo Who's Hiring en r/rust
Cita de la semana
Pregunta real: ¿es una matriz una estructura/tupla, o es una enumeración?
¡Gracias a Theemathas por la sugerencia!
¡Por favor, envíe 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*