Esta semana en Rust #62
¡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
- ¡Lanzamiento de ICU4X 2.0!
- Freya 0.3
- godot-rust mayo de 2025 dev update
- Novedades de SeaORM 1.1.12
- ¡Lanzamiento de Git-Cliff 2.9.0!
- Desafío "Rata en la naturaleza" de Ratatui
- registro de cambios de rust-analyzer #288
- Fusión de la frontera del bloque Ratatui
Observaciones/Pensamientos
- parking_lot: ffffffffff...
- Cómo lidiar con las dependencias de Rust
- Elogio de Shuttle: Oxidando la API web de Capibara
- Reducción del tamaño del directorio de destino de Cargo con -Zno-embed-metadata
- Diseño de tipos de error en bibliotecas de Rust
- ¿Por qué usar errores estructurados en aplicaciones de Rust?
- [video] La virtud de unsynn
- [audio] El proxy es solo un enrutamiento tonto
- [audio] David Lattimore - Enlazador más rápido, compilaciones más rápidas
- [audio] Rust con Niko Matsakis
- [audio] SWC con DongYoon Kang
- [audio] AccessKit con Matt Campbell y Arnold Loubriat
Tutoriales de Rust
- Libro de frases de C++ a Rust
- Los rasgos asincrónicos pueden ser respaldados directamente por implementaciones futuras manuales
- Cómo estructuramos nuestro build.rs en Rust
- [video] Iniciar un nuevo juego Bevy 2d con el CLI de Bevy
- [video] Build with Naz : Analizar entrada sin corte con nom
Investigación
Miscelánea
Crate de la semana
El crate de esta semana es context-logger, una biblioteca ligera y ergonómica para agregar contexto estructurado a sus registros.
¡Gracias a Aleksey Sidorov por la autosugestión!
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.
Carga
-
Redefinir 'CARGO_TARGET_DIR' para que sea solo un directorio de artefactos
-
- 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.
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.
Esta semana no se han presentado convocatorias para participar.
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 529 solicitudes de extracción en la última semana][fusionadas]
Compilador
- Corregir intervalos para carpetas inseguras
- Nuevo solucionador de PGO
- añadir rutas rápidas adicionales de 'TypeFlags'
- agregar ruta rápida para maybe-initializationness en liveness
Biblioteca
- Etapa de rediseño 0 std
- implementar los métodos '((un)checked_)exact_div' para números enteros
- agregar el parámetro Range a 'BTreeMap::extract_if' y 'BTreeSet::extract_if'
- añadir 'CStr::d isplay'
- añadir 'Resultado::map_or_default' y 'Opción::map_or_default'
- añadir 'From<TryLockError>' para 'io::Error'
- agregar soporte 'const' para métodos de redondeo flotante
- agregar el método 'data_ptr' a Mutex y RwLock
Carga
- trim-paths: remapear todas las rutas a 'build.build-dir'
- arreglar la carga agregar sobrescribir archivos Cargo.toml enlazados simbólicamente
Rustdoc
- limpiezas relacionadas con asignaciones
- mostrar 'doc(cfg(false))' correctamente
- enlazar a una macro de proc local ya no avisa
- use información sobre herramientas descriptiva si doctest se ignora condicionalmente
Clippy
- 'explicit_deref_methods': no pelar en las cadenas de métodos
- 'needless_return': mira dentro de las partes 'else if' también
- 'while_let_loop': Incluir la tarea 'let' en la sugerencia
- añadir pelusa 'infallible_try_from'
- limpieza 'modulo_arithmetic'
- extender 'manual_is_variant_and lint' para comprobar si hay comparaciones de mapas booleanos
- arreglar que 'dbg_macro' falle al manejar la desazúcar de corrutina asíncrona
- arreglar 'semicolon_outside_block' sugiere erróneamente cuando está dentro de macros
- mejorar la redacción de los documentos de 'manual_contains'
- nueva restricción lint: 'pointer_format'
- optimizar 'unit_return_expecting_ord'
- use símbolos internos en lugar de cadenas en más lugares
Analizador de Rust
- tenga en cuenta las acciones de 'Generar' al filtrar las permitidas
- agregar una solución rápida para acceder a un campo privado de una 'estructura'
- agregar soporte para 'Semantics<'db, dyn HirDatabase>' borrado de tipos, mediante el uso de 'DB: ? Tamaño'
- habilitar la edición de asistencia para 'tupla<->estructura con nombre' para las palabras clave 'struct' y visibility
- desugar assist para 'let pat = expr?; ' → 'dejar lo demás'
- mejorar el cambio de nombre para incluir variaciones de identificadores generadas por macros
- renderizar información de relleno al pasar el cursor sobre estructuras
- manejadores de ciclo para 'HirDatabase::infer, const_param_ty_with_diagnostics'
- arreglar la capa IDE que no resuelve algunas llamadas de macro
- arreglar la inserción de importación que no es totalmente consciente de cfg
- corregir la inferencia del tipo de retorno 'AsyncFnX'
- manejar mejor los archivos incluidos en la capa IDE
- reconocer los ciclos de salsa en 'thread_result_to_response'
- Omitir análisis de patrones en discrepancias de tipos
Clasificación del rendimiento del compilador de Rust
Una semana bastante ajetreada, con muchos cambios en el rendimiento. La mayoría de los cambios (al menos en cantidad de índices de referencia) son atribuibles a una actualización de nuestro PGO a los puntos de referencia más nuevos como parte de la actualización de 2025.
Triaje realizado por @simulacrum. Rango de revisión: 2805e1dc.. 2fc3deed
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
- Agregar (atrás) unsupported_calling_conventions lint para rechazar más convenciones de llamada no válidas
- Estabilizar los resguardos 'if let' ('feature(if_let_guard)')
- Añadida la implementación de 'Clone' para 'ChunkBy'
- Hacer que la pelusa 'dangerous_implicit_autorefs' se deniegue por defecto
- Hacer que el carácter distinto de cero< > posible
- Problema de seguimiento para nonnull_provenance
- [disposición: cerrar] Implementar operaciones para envolver< T > donde Rhs = T
- Divide la pelusa 'unknown_or_malformed_diagnostic_attributes'
- Lint en comparaciones de punteros fn en macros externas
- Especifique el comportamiento de 'file!'
- Representación del documento de 'Opción<insegura fn()>'
- Estabilizar 'característica(generic_arg_infer)'
- Permitir '#! [doc(test(attr(..)))]' en todas partes
- Problema de seguimiento para la API de bloqueo de archivos
- [disposición: no especificada] Problema de seguimiento para 'unsigned_signed_diff'
- Estabilizar 'os_string_pathbuf_leak'
RFC de Rust
No hay artículos ingresados al Período Final de Comentarios esta semana para Carga, 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
- [nuevo] de-RFC: Eliminar unsized_locals
- [nuevo] RFC: Macros de procedimiento en el mismo paquete que la aplicación
- [nuevo] RFC: Permitir implicaciones genéricas usando límites de rasgos locales
Próximos eventos
Eventos oxidados entre 2025-06-04 - 2025-07-02 🦀
Virtual
- 04/06/2025 | Virtual | Computación Científica en Rust
- 04/06/2025 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 05/06/2025 | Virtual (Berlín, DE) | Rust Berlín
- 07/06/2025 | Virtual (Kampala, UG) | Reunión de Rust Circle
- 08/06/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 2025-06-10 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 2025-06-10 | Virtual (Londres, Reino Unido) | Mujeres en Rust
- 11/06/2025 | Virtual (Tel Aviv, Illinois) | Expertos en código 🦀 - 🐍 - 🐪
- 2025-06-12 | Virtual (Charlottesville, VA, EE. UU.) | Reunión de Rust en Charlottesville
- 15/06/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 17/06/2025 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 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 | Virtual (Berlín, DE) | Rust Berlín
- 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
- 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
Asia
- 08/06/2025 | Tel Aviv-yafo, IL | Rust 🦀 TLV
Europa
- 04/06/2025 | Gante, BE | Programación de Sistemas Gante
- 04/06/2025 | Köln, DE | Colonia Rust
- 04/06/2025 | Oxford, Reino Unido | Grupo de Meetup de Oxford Rust
- 05/06/2025 | München, DE | Rust Múnich
- 2025-06-10 | Cambridge, Reino Unido | Encuentro de Cambridge Rust
- 2025-06-10 | Varsovia, PL | Rust Varsovia
- 11/06/2025 | Reading, Reino Unido | Taller de lectura de Rust
- 2025-06-12 | Berlín, DE | Rust Berlín
- 17/06/2025 | Leipzig, SN, DE | Rust - Programación de sistemas modernos en Leipzig
- 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
- 24/06/2025 | Manchester, Reino Unido | Rust de Manchester
- 25/06/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
- 2025-06-26 | Copenhague, Dinamarca | Comunidad de Rust de Copenhague
- 02/07/2025 | Basilea, CH | Basilea Rust
América del Norte
- 05/06/2025 | Chicago, Illinois, Estados Unidos | Encuentro de Rust en Chicago
- 05/06/2025 | Saint Louis, MO, EE. UU. | STL Rust
- 08/06/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 11/06/2025 | Phoenix, AZ, EE. UU. | Rust del desierto
- 2025-06-12 | Mountain View, CA, EE. UU. | Dojo Hacker
- 17/06/2025 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 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
- 2025-06-20 | Boston, MA, EE. UU. | Encuentro de Boston Rust
- 25/06/2025 | Austin, TX, Estados Unidos | Rust ATX
- 2025-06-26 | Spokane, WA, EE. UU. | Rust de Spokane
- 28/06/2025 | Boston, MA, EE. UU. | Encuentro de Boston Rust
Oceanía
- 16/06/2025 | Christchurch, Nueva Zelanda | Grupo de encuentro de Christchurch Rust
- 24/06/2025 | Barton, Australia | Grupo de usuarios de Canberra Rust
América del Sur
- 04/06/2025 | Montevideo, UY | Rust Meetup Uruguay
- 2025-06-12 | Buenos Aires, AR | Rust en Español
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
Los verificadores de tipos de Python basados en Rust son como autobuses: esperas años para que llegue uno y luego aparecen dos a la vez.
¡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