- Jiff es una biblioteca de fecha y hora para Rust, diseñada para que los usuarios puedan obtener resultados correctos con facilidad
- Proporciona primitivas de fecha y hora de alto nivel, por lo que es difícil usarla incorrectamente y ofrece un buen rendimiento
- Ofrece integración automática con la Time Zone Database, aritmética y redondeo con reconocimiento de DST, además de funciones de formateo y parseo
- Incluye varias funciones, como soporte para Serde
- Toma mucha inspiración de Temporal de JavaScript
- Licencia dual MIT o UNLICENSE
Planes a futuro
- Planea mejorar la API de Jiff y publicar cambios de forma periódica durante aproximadamente un año
- Después de un año, cuando la API esté estable, planea lanzar Jiff 1.0 y mantener la API a largo plazo
- El objetivo es que otras personas puedan confiar en Jiff y usarlo
Rendimiento
- El objetivo de diseño más importante de Jiff es hacer que sea difícil para los usuarios hacer cosas incorrectas
- El segundo objetivo es el rendimiento
- El rendimiento es razonable, pero hay margen de mejora
- Los benchmarks pueden revisarse en el directorio
bench
Soporte de plataformas
- Hay cuestiones de soporte de plataforma relacionadas con el soporte de zonas horarias
- Cómo determinar las transiciones de zona horaria para los identificadores de zona horaria de IANA
- Cómo determinar la zona horaria predeterminada del sistema actual
- En sistemas Unix, los datos de transición de zona horaria se buscan en
/usr/share/zoneinfo
- En Windows, la base de datos de zonas horarias se incluye en la biblioteca compilada
- Para detectar la zona horaria del sistema, en Unix se usa
/etc/localtime y en Windows GetDynamicTimeZoneInformation
Dependencias
- Jiff no tiene dependencias en Unix
- Es muy conservador al agregar nuevas dependencias
- Solo agrega dependencias cuando son necesarias para interactuar con la plataforma o para interoperabilidad
Resumen de GN⁺
- Jiff es una biblioteca de fecha y hora de alto nivel para Rust, diseñada para evitar que los usuarios la usen incorrectamente con facilidad
- Ofrece varias funciones, como integración con la Time Zone Database, aritmética con reconocimiento de DST y funciones de formateo
- Fue diseñada con inspiración en Temporal de JavaScript
- Durante el próximo año planea mejorar la API y luego lanzar una versión 1.0 estable
- El rendimiento es razonable, aunque todavía puede mejorar, y el soporte de plataforma funciona bien en Unix y Windows
1 comentarios
Comentarios de Hacker News
La sintaxis de ToSpan se siente algo incómoda
let span = 5.days().hours(8).minutes(1);, resulta raro que el primer número vaya al frente y el resto aparezca como argumentos de funciónlet span = Span::new().days(5).hours(8).minutes(1);, pero requiere algunos caracteres másHay gente que subestima la complejidad de las bibliotecas de datetime
La aritmética de DST, los períodos redondeables, la aritmética de calendario con reconocimiento de zona horaria y la detección de conflictos de zona horaria hacen que la biblioteca sea precisa y fácil de usar
Un chiste sobre que salió una nueva biblioteca de burntsushi
tracingen sus cratelogestá bien, pero rastrear llamadas de trabajo de tz no es un caso de uso comúnLa nueva biblioteca se ve genial
El estado de las bibliotecas de calendario en Rust no es ideal
El principal problema de las bibliotecas de tiempo existentes es la falta de soporte para segundos intercalares
BurntSushi es el autor del ecosistema de expresiones regulares de Rust
Debate sobre la pronunciación de Jiff