3 个版本
0.1.2 | 2022年2月19日 |
---|---|
0.1.1 | 2022年2月11日 |
0.1.0 | 2022年2月11日 |
#639 in Unix APIs
69KB
2K SLoC
Rust-locked localtime 实现
项目已废弃
此项目已废弃,因为存在一个纯 Rust 实现 - tz-rs
。代码仅用于存档目的。
关于
警告:该项目目前是一个概念验证项目,并未经过深入审计!虽然我相信这解决了不稳定性问题,但我可能引入了其他错误。请自行承担风险,或者,更好的是,帮助改进它!
这是 C localtime_r
实现的分支,通过最小的修改使在 Rust 中并行调用它时设置环境变量变得可靠。它通过调用 Rust 代码来获取环境变量而不是使用原始系统 getenv
来实现这一点。
显然,这 不会 与系统 localtime_r
实现交互。例如,如果您在这个包中调用 localtime
,它将不会影响系统库中的静态变量。这被认为是一个特性,因为系统 localtime
库是一个巨大的垃圾堆,如果您使用它,很容易得到 UB -不仅仅是设置环境变量。(NetBSD 实现要好一些。)
此包旨在作为一个更易于实现的替代方案,以在 Rust 中重写整个 localtime_r
,因为人们不愿意这样做,因为代码量很大。它只需要更改几行并编写粘合 Rust 代码。
许可证
C 代码,包括我的修改,已发布到公有领域。Rust 代码在 MITNFA 许可证下发布。
依赖项
~225KB