Esta semana en Rust #51
¡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 X (antes Twitter) 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
- Anunciando rustup 1.28.1
- Argumentos genéricos const inferidos: ¡Llamada a prueba!
- Este mes en nuestra infra de pruebas: enero y febrero de 2025
Actualizaciones de proyectos/herramientas
- Soporte nativo de Git en Zed - Zed Blog
- tfmcp 🦀 : Una herramienta implementada por Rust para operar Terraform desde LLM
- Novedades de SeaORM 1.1
Observaciones/Pensamientos
- Rust en 2025: Apuntando al software fundamental
- Un día feliz para Rust
- Recursos de aprendizaje de Rust 2025
- Domar a un voraz proxy de Rust
- Estructuras de datos sucintas
- ¿Cuándo es "este rasgo se puede implementar" parte de la API pública del rasgo?
- ¿Cuándo se ejecutan las const fns de Rust?
- Diseño de objetos de rasgo de Rust
- El arte de formatear el código
- [video] Rust is the New C
- [audio] Rust con Guillaume Gomez
Tutoriales de Rust
- Escribir en búferes no inicializados en Rust
- Traduciendo bzip2 con c2rust
- Nine Pico PIO Wats with Rust: Raspberry Pi programable IO pitfalls ilustrado con un ejemplo musical (Parte 1)
- Rust asíncrono para dummies
- Cómo construimos nuestras demostraciones de Embedded World 2025
- [video] Ratatui - interfaces de usuario de terminal en Rust con Orhun Parmaksız - construir ratatop en programación de pares
- [video] Derivar macros: O, cómo aprendí a dejar de preocuparme y amar el proc_macro2::TokenStream
- [video] Portando el dispositivo de trama guff a Rust
Miscelánea
Crate de la semana
El crate de esta semana es eval-macro, una caja que permite evaluar macros en tiempo de compilación, dando una sensación similar al comptime de Zig.
¡Gracias a Aleksander Krauze por la 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 una etiqueta de 'llamada para pruebas' a su RFC junto con con un comentario que proporcione instrucciones de prueba y/o orientación sobre qué aspecto (s) de la función necesitan pruebas.
-
- Esta semana no se emitieron convocatorias para pruebas por parte de Rust, RFC del lenguaje Rust o Oxidación.*
Háganos 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.
- GOSIM Rust Spotlight - ¡Nomina y apoya tus proyectos favoritos! | Cierra el 15/03/2025 a las 7:59 a. m. UTC | Utrecht, NL | 2025-05-13 - 2025-05-17
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 555 solicitudes de extracción en la última semana][fusionadas]
Compilador
- conteo de referencias ergonómico
- en tramos largos, recorte la mitad de ellos para que quepan en el ancho del terminal
- dividir el iterador 'Edges'
- perf: cambiar TaskDeps para iniciar preasignado con 128 de capacidad
- perf: acelerar el cálculo de la característica objetivo
Biblioteca
- estabilizar '[T]::split_off... ' métodos
- estabilizar 'box_uninit_write'
- estabilizar 'const_char_classify, const_sockaddr_setters'
- estabilizar 'const_vec_string_slice'
- estabilizar 'string_extend_from_within'
- estabilizar la función 'const_copy_from_slice'
- anular los métodos predeterminados de 'Escritura' para tipos similares al cursor
- especialice 'OsString::p ush' y 'OsString as From' para UTF-8
- perf: mejorar el MIR genérico en el predeterminado 'PartialOrd::le' y amigos
- cuente el ancho de los caracteres como máximo una vez en 'Formatter::p ad'
- se corrige el conteo de caracteres en 'Display' para 'ByteStr'
- arreglar bloqueo en 'BufReader::p eek()'
Carga
- árbol de carga: Añade '--depth public' detrás de '-Zunstable-options'
- cargo: agregar integración de terminal a través de ANSI OSC 9; 4 secuencias
- cargo: no uses '$CARGO_BUILD_TARGET' en 'metadatos de carga'
- cargo: añadir terminaciones para add --path
- cargo: añadir finalizaciones para install --path
- Cargo: se acepta el respeto --congelado en todas partes --fuera de línea o --bloqueado
Rustdoc
- corregir el uso de la pila 'O(tests)' en la edición 2024 de doctests fusionables
- buscar: aumentar el rigor de la comprobación de tipos* rustdoc: añadir pruebas relacionadas con atributos para rustdoc JSON
- ocultar elemento que no está marcado como 'doc(inline)' y cuyo src es 'doc(hidden)'
Clippy
- clippy: 'arbitrary_source_item_ordering': Hacer que el orden alfabético en los grupos de elementos del módulo sea opcional
- clippy: 'unnecessary_to_owned': no llames a 'iter()' en un objeto temporal
- clippy: agregar anotaciones de pruebas faltantes para 'ui-internal'
- clippy: no active 'blocks_in_conditions' cuando la condición contiene un 'return'
- clippy: no activar 'unnecessary_debug_formatting' en las pruebas
- clippy: arreglar el modo de enlace faltante de 'manual_let_else'
- clippy: mejor ayuda para 'mixed_case_hex_literals'
- clippy: mejorar la sugerencia de 'needless_pass_by_value'
- clippy: hacer que 'struct_field_names' verifique los campos privados de las estructuras públicas
- clippy: función de refactorización después de agregar un nuevo elemento de diagnóstico
- clippy: eliminar la sección de problemas conocidos para 'vec_box'
- clippy: renombra el alias de MSRV 'MANUAL_DIV_CEIL' a 'DIV_CEIL'
- clippy: usa 'size_of' del preludio en lugar de importado
- clippy: 'io_error_other': regresa al contexto raíz para calcular el intervalo
Analizador de Rust
- rust-analyzer: 'fix(hir): VariantDef' is 'impl HasSource'
- Rust-analyzer: Agregar los padres name-ref que faltan para resaltar sintáctico
- rust-analyzer: agregar información de advertencia y depuración cuando fallan los 'metadatos de carga'
- Rust-Analyzer: Ajuste el umbral de puntuación de relevancia para que sea coherente con la implementación existente...
- Rust-analyzer: agregue diagnóstico para Dyn, Impl y Dhangling Dyn
- rust-analyzer: avisa al usuario cuando un cambio de nombre cambiará el significado del programa
- Rust-Analyzer: Macrohigiene de 'ruta'
- rust-analyzer: resaltado de sintaxis, filtrado de puntos ignorando mods
- rust-analyzer: arreglar los diagnósticos que se borran justo después de ser recibidos
- Rust-Analyzer: Normalizar las proyecciones en la visualización de const evaluada y el cálculo del diseño
- rust-analyzer: evitar invocaciones incorrectas de 'needs_parens_in' con "padres" no ancestrales
- Rust-analyzer: resalte las operaciones inseguras como inseguras, no definiciones
- rust-analyzer: mejorar la finalización de palabras clave para 'let' y 'let mut'
- rust-analyzer: Salida de error del script de compilación de registros en 'load_cargo::load_workspace_at'
- rust-analyzer: make 'GenericParamsCollector::type_or_consts' no innecesariamente 'pub(crate)'
- rust-analyzer: hacer anotaciones de cambio por edición de texto
- rust-analyzer: mover el MSRV del proyecto cargado de nuevo a 1.78, mostrar notificación para la advertencia
- rust-analyzer: clasificar los constructores de ADT como constructores para la puntuación de finalización
Clasificación del rendimiento del compilador de Rust
Esta semana tuvimos que fusionar muchos rollups grandes debido a muchos problemas con nuestra infraestructura de CI, lo que dificultó el análisis. A pesar de que las estadísticas agregadas parecen haber muchas regresiones, Está sesgado por dos grandes regresiones que ocurren en una compilación incremental optimizada poco común y un Construcción de documentación de una sola caja. Se está realizando un seguimiento de la regresión de la documentación y se corrigen las correcciones Algunas otras regresiones ya están en curso.
Triaje realizado por @kobzol. Rango de revisión: daf59857.. 9fb94b32
Resumen:
| (instrucciones:u) | media | Gama | Recuento |
|:----------------------------------:|:-----:|:---------------:|:-----:|
| Regresiones ❌
(primario) | 1.2% | [0.2%, 58.8%] | 149 |
| Regresiones ❌
(secundaria) | 4.2% | [0.2%, 165.8%] | 127 |
| Mejoras ✅
(primario) | -1,1% | [-14.0%, -0.3%] | 31 |
| Mejoras ✅
(secundaria) | -2,9% | [-38.4%, -0.1%] | 43 |
| Todos ❌✅ (primarios) | 0.8% | [-14.0%, 58.8%] | 180 |
2 regresiones, 2 mejoras, 5 mixtas; 4 de ellos en rollups 37 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:
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
RFC de Rust
Otras áreas
- No hay artículos ingresados al Período Final de Comentarios esta semana para Carga, Equipo lingüístico, Referencia lingüística 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-03-12 - 2025-04-09 🦀
Virtual
- 13/03/2025 | Virtual (Berlín, DE) | Rust Berlín
- 18/03/2025 | Virtual (Tel Aviv-Yafo, IL) | Expertos en código 🦀 - 🐍 - 🐪
- 18/03/2025 | Virtual (Washington, DC, EE. UU.) | Rust DC
- 19/03/2025 | Virtual (Vancouver, Columbia Británica, CA) | Rust de Vancouver
- 2025-03-20 | Virtual (Tel Aviv-Yafo, IL) | Expertos en código 🦀 - 🐍 - 🐪
- 25/03/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
- 25/03/2025 | Virtual (Londres, Reino Unido) | Mujeres en Rust
- 27/03/2025 | Virtual (Berlín, DE) | Rust Berlín
- 01/04/2025 | Virtual (Buffalo, NY, EE. UU.) | Encuentro de Buffalo Rust
- 02/04/2025 | Virtual (Indianápolis, IN, EE. UU.) | Indy Rust
- 03/04/2025 | Virtual (Nürnberg, DE) | Rust, Núremberg, DE
- 05/04/2025 | Virtual | Laboratorios Ardan
- 08/04/2025 | Virtual (Dallas, TX, EE. UU.) | Reunión de usuarios de Dallas Rust
Asia
- 15/03/2025 | Pekín, CN | WebAssembly y Rust Meetup (Wasm Empowering AI)
- 19/03/2025 | Tel Aviv-Yafo, IL | Rust 🦀 TLV
- 2025-03-28 | Kowloon Tong, HK | Rust de Asia
- 05/04/2025 | Bangalore/Bangalore, IN | Rust de Bangalore
Europa
- 12/03/2025 | Reading, Reino Unido | Taller de lectura de Rust
- 13/03/2025 | Biel, CH | Rust Bern
- 14/03/2025 | París, FR | Rust en París
- 18/03/2025 | Basilea, CH | Basilea Rust
- 18/03/2025 | Leipzig, DE | Rust - Programación de sistemas modernos en Leipzig
- 2025-03-20 | Edimburgo, Reino Unido | Rust y sus amigos
- 2025-03-20 | Praga, CZ | Rust Praga
- 25/03/2025 | Aarhus, DK | Rust Aarhus
- 25/03/2025 | Eindhoven, Países Bajos | Rust
- 25/03/2025 | Londres, Reino Unido | Grupo del Proyecto Rust de Londres
- 2025-03-26 | Fráncfort, DE | Rust Rhein-Main
- 2025-03-26 | Manchester, Reino Unido | Rust de Manchester
- 2025-03-26 | Varsovia, PL | Rustikon
- 27/03/2025 | Augsburgo, DE | Encuentro de Rust Augsburgo
- 02/04/2025 | München, DE | Rust Múnich
- 02/04/2025 | Oxford, Reino Unido | Grupo de Meetup de Oxford Rust
- 02/04/2025 | Estocolmo, SE | Estocolmo Rust
- 03/04/2025 | Oslo, NO | Rust Oslo
- 08/04/2025 | Olomouc, CZ | Rust Moravia
- 09/04/2025 | Reading, Reino Unido | Taller de lectura de Rust
América del Norte
- 13/03/2025 | Chicago, Illinois, Estados Unidos | Encuentro de Rust en Chicago
- 13/03/2025 | Portland, Oregón, Estados Unidos | PDXRust
- 18/03/2025 | San Francisco, CA, EE. UU. | Grupo de Estudio de la Roya de San Francisco
- 18/03/2025 | Spokane, WA, EE. UU. | Rust de Spokane
- 2025-03-20 | Mountain View, CA, EE. UU. | Dojo Hacker
- 2025-03-20 | Nashville, Tennessee, Estados Unidos | Desarrolladores de Music City Rust
- 2025-03-20 | Redmond, WA, EE. UU. | Grupo de usuarios de Seattle Rust
- 21/03/2025 | Ciudad de México, MX | Rust MX
- 2025-03-26 | Austin, TX, Estados Unidos | Rust ATX
- 27/03/2025 | Atlanta, Georgia, Estados Unidos | Rust Atlanta
- 31/03/2025 | Boulder, CO, EE. UU. | Depósito de estado sólido
- 03/04/2025 | Montreal, QC, CA | Rust Montreal
- 03/04/2025 | Saint Louis, MO, EE. UU. | STL Rust
América del Sur
- 15/03/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
Trata cualquier cosa que comience con 'carga' como si fuera 'carga de carrera'. Esto se aplica incluso a los comandos que no construyen nada, como 'cargo clean', y a los plugins de terceros, como 'cargo audit'.
– Sergey "Shnatsel" Davidoff en /r/rust
¡Gracias a llogiq 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