#date-time #http #date #header #gmt #client-server

httpdt

HTTP客户端和服务器的时间日期库

1 个不稳定版本

0.1.0 2024年7月25日

#172HTTP客户端

Download history 90/week @ 2024-07-20 48/week @ 2024-07-27

138 每月下载量

MIT 协议

29KB
507

httpdt

HTTP客户端和服务器的时间日期库。

生成用于HTTP Date头部的时间戳,这是HTTP实现所需的唯一格式。

SystemTime进行计算,具有清晰性,无外部依赖,并提供对先前生成的时间日期的更新以提高速度。

为什么?

为了简单和全面理解,在实现客户端或服务器时不需要审计更广泛的日期时间包以生成相对简单的输出。

如何?

使用new方法实例化Datetime结构体,然后使用for_header获取'Date'头字段的当前时间戳。

use httpdt::Datetime;

let timestamp = Datetime::new()?
  .for_header();

为了减少计算,可以使用初始实例作为连续生成新时间戳的基础,通过使用now方法。

use httpdt::Datetime;

let dt = Datetime::new()?;

let ts_initial = dt
  .for_header();
// ...
let ts_updated = dt
  .now()?
  .for_header();

default方法提供了一个对应于Unix纪元的Datetime实例,而raw方法则是自纪元以来的秒数。

文档

可以使用以下命令在浏览器中构建和查看文档:

cargo doc --open

修改

修改后运行测试,并添加测试以覆盖新行为是推荐的。

测试

可以使用以下命令运行单元测试和文档示例:

cargo test

每个组件的单元测试用例位于相应源文件底部的测试模块中。

开发计划

以下是代码库开发预期下一步的步骤。中长期目标是清晰、健壮且高效的日期时间资源,以实现更全面的HTTP实现。欢迎对这些和其他潜在改进的拉取请求。

  • 实现顶级错误类型
  • 重新审视跨组件的整型类型
  • 记录并公开单个组件
  • 处理时区,允许生成符合通用日志格式的服务器日志条目
  • 修订依赖于SystemTime的测试
  • 扩展测试模块

无运行时依赖