#date #http #http-header #no-std #performance #efficient

no-std faf-http-date

为HTTP日期头部快速生成日期 (no_std)

1 个不稳定版本

0.1.0 2021年3月31日

#427日期和时间

MIT/Apache

11KB
233

faf-http-date (no_std)

快速 (~20ns) 生成符合RFC 822/1123/2616的HTTP头部的日期。这用于 faf Web服务器

此crate很简单,您只需将缓冲区传递给提供的函数。函数将填充缓冲区中的日期

  • 为什么使用缓冲区?因为它更快。
  • 为什么传递缓冲区而不是让日期函数直接返回一个?因为它更快。
  • 为什么使用字节而不是字符串/str?因为它更快,并且字节是您将要写入TCP套接字的内容,而不是字符串。如果您需要字符串,可以将缓冲区转换为 &strString。请参见下面的示例

这是对 pyfisch/httpdate 进行了大量优化、剥离和修改的版本

示例

// 格式:b"Thu, 01 Jan 1970 00:00:00 GMT"

let mut buf = faf_http_date::get_date_buff_no_key();
faf_http_date::get_date_no_key(&mut buf);

// Optional, convert to str
let date_str = unsafe { std::str::from_utf8_unchecked(&buf[..]) };

格式:b"Date: Thu, 01 Jan 1970 00:00:00 GMT" (注意开头的 'Date: ')

let mut buf = faf_http_date::get_date_buff_with_key();
faf_http_date::get_date_with_key(&mut buf);

// Optional, convert to str
let date_str = unsafe { std::str::from_utf8_unchecked(&buf[..]) };

无运行时依赖