Esta semana en Rust #59
¡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
Actualizaciones de proyectos/herramientas
- Anunciando Malai - Comparte tu servidor de desarrollo (y más) a través de P2P
- Análisis de datos de streaming, versión 0.17.2 de Fluvio
- Leptos v0.8.0
- Este mes en Redox - Abril 2025
Observaciones/Pensamientos
- Entrelazado automático de operaciones concurrentes de alto nivel
- Aplanando la curva de aprendizaje de Rust
- La evolución del Rust
- std::mem es... Interesante
- [audio] Svix con Tom Hacohen
Tutoriales de Rust
- Autenticación con Axum
- Los índices newtyped son pruebas
- ¿Qué está haciendo mi fuzzer?
- Una API de Rust inspirada en Python, impulsada por Serde
- Cómo crear imágenes Docker pequeñas y seguras para Rust (DESDE cero)
- [video] Rust + SQLite: Tutorial completo (esquema, CRUD, JSON y asíncrono)
Investigación
- Un depurador interactivo para errores de rasgos de Rust
- RustAssistant: Uso de LLMs para corregir errores de compilación en el código Rust
Miscelánea
- Sudo seguro para memoria se convertirá en el predeterminado en Ubuntu
- Cómo conseguir un trabajo de Rust Parte I: Empresas que ya utilizan Rust
- Finalistas de GOSIM Spotlight en RustWeek
Crate de la semana
El crate de esta semana es structstruck, una caja proc-macro para habilitar definiciones de struct/enum anidadas.
¡Gracias a Julius Michaelis por la auto-sugerencia!
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 o Oxidación.*
Háganoslo saber si desea que se realice un seguimiento de su función como parte de esta lista.
RFCs
Rust
Rustup
Si es un implementador de funciones 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.
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.
- Hyperswitch - Mover las funciones de utilidad específicas del conector a los módulos de conector respectivos
- Hyperswitch - Refactorizar el conector ACI para reutilizar utilidades de 'utils.rs'
- Hyperswitch - Analice y elimine las funciones no utilizadas en 'connector/utils.rs'
- Rama - Añadir fFi/Rama-Rhai: Capacidad de soporte para usar servicios y capas escritas en Rhai
- rama - soporte (TLS) peetprint en huellas dactilares rama-net
- Rama - Admite la huella digital pasiva Akamai H2 y la exposición en los servicios Echo + FP
- rama - añadir into_stream al rasgo BodyExtractExt
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.
No se han presentado convocatorias ni 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 to TWiR o comunicándose en X (anteriormente Twitter) o Mastodon!
Actualizaciones del Proyecto Rust
Se [fusionaron 447 solicitudes de extracción en la última semana][fusionadas]
Compilador
- handle paren in macro expand for let-init-else expr
- implementar patrones o para tipos de patrones
- Soporte inicial para cajas conectadas dinámicamente
- mir-opt: ejecutar MatchBranchSimplification después de GVN
- refactorizar el analizador de filtros de 'rustc_on_unimplemented's
- perf: optimiza el codegen para 'Span::from_expansion'
- perf: comprobación de retraso de '#[rustc_no_implicit_autorefs]' en autoref lint
- perf: simplify 'LazyAttrTokenStream'
- perf: use un cierre en lugar de tres iteradores encadenados
- Transmutabilidad: fusionar tramos contiguos con un destino común
- Transmutabilidad: la transición uninit coincide solo con el byte unitario
Biblioteca
- evitar comprobaciones redundantes de WTF-8 en 'PathBuf'
- delegar a inner 'vec::IntoIter' desde 'env::ArgsOs'
- implementar 'Iterator::last' para 'vec::IntoIter'
- estabilizar 'ptr::swap_nonoverlapping' en const
- estabilizar 'select_unpredictable'
- simplificar la macro 'formato'
Carga
- cargo add: sugerir características con nombres similares
- en package-workspace, mantener dev-dependencies si tienen una versión
Rustdoc
Rustfmt
Clippy
- No avises sobre cajas descargadas
- Arreglar 'collapsible_if' falso positivo en el bloque stmt antes de expr
- corregir el falso positivo 'manual_unwrap_or_default' en el enlace de referencias
- corrección: 'manual_slice_fill' falso positivo en la sobrecarga de 'IndexMut'
- corrección: 'unused_async' falso positivo en impl predeterminado
- puerta 'collapsible_if let_chains' pelusas en la edición 2024 y MSRV
Analizador de Rust
- agregar soporte PGO para instalar
- Mejor manejo del paralelismo en el cebado de caché
- desactivar temporalmente el punto de fijación para el cálculo de la varianza
- añadir una ayuda para desenvolver un tipo con un arg genérico
- índice de inicio de var ty ligado a la asociación correcta
- información de intervalo correcta para 'mir::Operand'
- que no cunda el pánico con algún código extraño
- arreglar las asistencias de 'move_bounds' que no funcionan de por vida
- Se corrige el manejo incorrecto de las importaciones no resueltas que no son módulos en la resolución de nombres
- arreglar la API proc-macro que crea literales negativos mal formados
- implementar mut a const ptr cast para la resolución del método
- mejorar un poco la recuperación del analizador
- Números negativos en la expansión 'Concat!
- eliminar la verificación innecesaria de la longitud del token para macros en el cambio de nombre
- mejorar el fragmento de código LET
- renderizar más vidas
- Variable de entorno de soporte 'CARGO_MANIFEST_PATH'
Clasificación del rendimiento del compilador de Rust
Una semana relativamente ruidosa debido a la incorporación de nuevos puntos de referencia como parte de nuestro [2025 benchmark update], y una serie de grandes regresiones en un rollup que aterriza tarde en la semana (y por lo tanto aún no se ha investigado).
Triaje realizado por @simulacrum. Rango de revisión: 25cdf1f6.. 62c5f58f
2 regresiones, 2 mejoras, 6 mixtas; 3 de ellos en rollups 31 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
- Extensión temporal de la vida útil a través de constructores de estructura de tupla y variantes de tupla
- Estabilizar las características del objetivo avx512
- Hacer de 'missing_fragment_specifier' un error incondicional
- Error en la opacidad recursiva en el tipo HIR
- Añadir 'std::io::Seek instance' para 'std::io::Take'
- eliminar intrínsecos::d rop_in_place
- Estabilizar 'tcp_quickack'
- Cambiar la eliminación de azúcar de 'assert!' para una mejor salida de error
- [Problema de seguimiento para 'non_null_from_ref]'(https://github.com/rust-lang/rust/issues/130823)
- Hacer que los predicados de buena formación ya no sean coductivos
- Se corrigió el orden de los parámetros para las variantes '_by()' de 'min' / 'max' / 'minmax' en 'std::cmp'
- Finalizar el comportamiento de inferencia de repetición expr con recuentos de repeticiones inferidos
- Implementar (parte de) ACP 429: agregar 'DerefMut' a 'Lazy[Cell/Lock]'
Otras áreas
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
- RFC: enable derive(From) para estructuras de un solo campo
- `#! [register_{attribute,lint}_tool]'
- RFC: Agregar un atributo para elevar la alineación de varios elementos
Próximos eventos
Eventos oxidados entre 2025-05-07 - 2025-06-04 🦀
Virtual
- 07/05/2025 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 07/05/2025 | Virtual (Róterdam, Países Bajos) | Desarrollo de juegos de Bevy
- 08/05/2025 | Virtual (Berlín, DE) | Rust Berlín
- 08/05/2025 | Virtual (Girona, ES) | Rust Girona
- 08/05/2025 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 08/05/2025 | Virtual (Zürich, CH) | Rust Zürisee
- 2025-05-10 | Virtual | Comunidad Leptos
- 11/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 11/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 13/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 15/05/2025 | Híbrido (Redmond, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 15/05/2025 | Virtual (Encuentro Conjunto, Europa + Israel) | Rust Berlín, Rust Paris, London Rust Project Group, Rust Zürisee, Rust TLV, Rust Nürnberg, Rust Munich, Rust Aarhus, lunch.rs
- 15/05/2025 | Virtual (Girona, ES) | Rust Girona
- 18/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 19/05/2025 | Virtual (Tel Aviv-Yafo, IL) | Rust 🦀 TLV
- 2025-05-20 | Virtual (Londres, Reino Unido) | Mujeres en Rust
- 2025-05-20 | Virtual (Tel Aviv, Illinois) | Expertos en código 🦀 - 🐍 - 🐪 Rust at Work: una conversación con Ran Reichman, cofundador y CEO de Flarion
- 2025-05-20 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 21/05/2025 | Híbrido (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 22/05/2025 | Virtual (Berlín, DE) | Rust Berlín
- 22/05/2025 | Virtual (Girona, ES) | Rust Girona
- 25/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 25/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 27/05/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 27/05/2025 | Virtual (Tel Aviv, Illinois) | Expertos en código 🦀 - 🐍 - 🐪
- 29/05/2025 | Virtual (Nürnberg, DE) | Rust de Núremberg
- 01/06/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 04/06/2025 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
Asia
- 17/05/2025 | Delhi, IN | Rust Delhi
- 24/05/2025 | Bangalore/Bangalore, IN | Rust de Bangalore
Europa
- 07/05/2025 | Girona, ES | Rust Girona
- 07/05/2025 | Köln, DE | Colonia Rust
- 07/05/2025 | Madrid, ES | Rust loco
- 07/05/2025 | Oxford, Reino Unido | Grupo de Meetup de Oxford Rust
- 08/05/2025 | Gdansk, PL | Rust Gdansk
- 08/05/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
- 2025-05-12 | Ámsterdam, Países Bajos | Rust
- 2025-05-12 | Ámsterdam, Países Bajos | Rust
- 2025-05-12 | Ámsterdam, Países Bajos | Rust
- 2025-05-12 | Ámsterdam, Países Bajos | Rust
- 13/05/2025 | Ámsterdam, Países Bajos | Rust
- 2025-05-13 - 2025-05-17 | Utrecht, NL | Rust NL
- 14/05/2025 | Reading, Reino Unido | Taller de lectura de Rust
- 15/05/2025 | Oslo, NO | Rust Oslo
- 16/05/2025 | Ámsterdam, Países Bajos | Rust
- 16/05/2025 | Utrecht, NL | Grupo de Meetup de Rust NL
- 17/05/2025 | Ámsterdam, Países Bajos | Rust
- 2025-05-20 | Aarhus, DK | Rust Aarhus
- 2025-05-20 | Leipzig, SN, DE | Rust - Programación de sistemas modernos en Leipzig
- 22/05/2025 | Augsburgo, DE | Rust Augsburgo
- 22/05/2025 | Berna, CH | Rust Bern
- 22/05/2025 | París, FR | Rust Paris
- 22/05/2025 | Estocolmo, SE | Estocolmo Rust
- 27/05/2025 | Basilea, CH | Basilea Rust
- 29/05/2025 | Oslo, NO | Rust Oslo
- 04/06/2025 | München, DE | Rust Múnich
- 04/06/2025 | Oxford, Reino Unido | Grupo de Meetup de Oxford Rust
América del Norte
- 07/05/2025 | Chicago, Illinois, Estados Unidos | Encuentro de Rust en Chicago
- 08/05/2025 | Ciudad de México, MX | Rust MX
- 08/05/2025 | Portland, Oregón, Estados Unidos | PDXRust
- 11/05/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 13/05/2025 | Nueva York, NY, EE. UU. | Rust Nueva York
- 15/05/2025 | Mountain View, CA, EE. UU. | Dojo Hacker
- 15/05/2025 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 15/05/2025 | Híbrido (Redmond, WA, EE. UU.) | Grupo de usuarios de Seattle Rust
- 2025-05-20 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 21/05/2025 | Híbrido (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 28/05/2025 | Austin, TX, Estados Unidos | Rust ATX
- 29/05/2025 | Atlanta, Georgia, Estados Unidos | Rust Atlanta
América del Sur
- 28/05/2025 | Montevideo, DE, UY | Rust Meetup Uruguay
- 31/05/2025 | 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 Who's Hiring en r/rust
Frase de la semana
Bueno, la respuesta es básicamente sí. Nuestro firmware es todo Rust. Todos los componentes de nuestra pila de autonomía son Rust. Nuestra aplicación está 50% en Rust. Y nuestras herramientas de visualización están en Rust. Nuestras herramientas de producción están oxidadas. El software de control de calidad de producción, que enviamos a China, está oxidado. Nuestros sitios web internos están oxidados. Está oxidado por todas partes. Hemos bebido el Rust Kool-Aid. De hecho, no hay Python instalado en los robots. Esto no es para desprestigiar a Python en absoluto, pero simplemente no está allí.
Usamos Python para el entrenamiento de redes neuronales. Pero Python está encasillado en eso. Todo lo demás es Rust. Y la ventaja de usar Rust se acumula exponencialmente.
¡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