#string #str #static #hashcons

hcstatic-str

短静态字符串的紧凑存储

2 个版本

0.1.1 2023年6月20日
0.1.0 2023年6月20日

#2782 in Rust 模式

MIT 许可证

7KB
145

哈希一致性静态短字符串存储

此软件包用于尽可能紧凑地存储静态短字符串(最多256字节)。而不是为每个字符串分配自己的空间,并关联填充、头部等,它们被打包存储在1 MiB的分配中。长度存储在分配中,使得 Str 类型的栈大小为1个词,而不是 &str 的通常2个。因为长度限制为256字节,堆分配中只使用一个额外的字节来存储长度。


lib.rs:

全局、永久、打包、哈希一致性、短字符串存储。

  • 支持长达256字节的字符串
  • 解引用为 &str,但在栈上只使用1个词,在堆上使用 len + 1 个字节
  • 实际字节被打包存储在1 MiB的分配中,以避免大量小 mallocs 的开销
  • 可复制!
  • 哈希一致性,相同的 &str 总是产生指向同一内存的指针

永远不会被释放

依赖项

~0.6–6MB
~16K SLoC