文件名称:tendril:紧凑的字符串类型,用于零拷贝分析
文件大小:46KB
文件格式:ZIP
更新时间:2024-06-15 21:49:55
Rust
卷须
警告:此库尚处于开发的早期阶段,它包含大量unsafe代码。 使用风险自负!
介绍
Tendril是一种紧凑的字符串/缓冲区类型,针对零拷贝解析进行了优化。 Tendrils具有拥有的字符串的语义,但有时是共享缓冲区的视图。 当您对卷须进行突变时,如有必要,将制作一份拥有的副本。 进一步的突变就地发生,直到字符串共享为止,例如,与clone()或subtendril()共享。
缓冲区共享是通过线程局部(非原子)引用计数来完成的,这具有非常低的开销。 Rust类型的系统将阻止您在编译时在线程之间发送卷须。 (有关放松此限制的想法,请参见下文。)
String在堆中为任何非空字符串分配,而Tendril可以内联存储小字符串(最多8个字节),而无需分配堆。 Tendril比也较小String在64位的平台- 16个字节与24 Option
【文件预览】:
tendril-master
----.gitignore(18B)
----src()
--------bench.rs(7KB)
--------tendril.rs(70KB)
--------buf32.rs(3KB)
--------stream.rs(24KB)
--------fmt.rs(13KB)
--------util.rs(1KB)
--------utf8_decode.rs(3KB)
--------lib.rs(1KB)
----.travis.yml(389B)
----capi()
--------src()
--------Cargo.toml(374B)
--------ctest()
--------include()
--------build.rs(229B)
----Cargo.toml(577B)
----examples()
--------fuzz.rs(5KB)
----LICENSE-MIT(1KB)
----README.md(5KB)
----LICENSE-APACHE(11KB)