12 个版本
使用旧的 Rust 2015
0.2.2 | 2021 年 5 月 19 日 |
---|---|
0.2.1 | 2019 年 10 月 9 日 |
0.2.0 | 2018 年 11 月 19 日 |
0.1.8 | 2018 年 3 月 19 日 |
0.1.1 | 2015 年 12 月 9 日 |
#63 in #byte-string
每月 256,795 次下载
在 不到 36 crates 中使用
81KB
1.5K SLoC
这是我的子串搜索工作区。
请在此处阅读 API 文档
文档
使用双向算法实现的字符串和字节字符串的快速子串搜索。
这是与 Rust 的 libstd 中包含的相同代码,用于str::find(&str),但在此处,它有所改进
- 支持使用&[u8]
- 进行字节字符串搜索,具有可选的 SSE4.2 加速版本(如果检测到运行时),速度更快。
- 使用memchr处理单字节情况,速度极快。
- twoway::find_bytes(text: &[u8], pattern: &[u8]) -> Option<usize>
- twoway::rfind_bytes(text: &[u8], pattern: &[u8]) -> Option<usize>
- twoway::find_str(text: &str, pattern: &str) -> Option<usize>
- twoway::rfind_str(text: &str, pattern: &str) -> Option<usize>
近期更改
- 0.2.1
- 更新开发依赖项
- 0.2.0
- 使用 std::arch 并在可能的情况下透明地支持 SSE4.2(仅限 x86 和 x86-64),以启用算法的加速实现。仅前向搜索。由 @RReverser 和 @bluss 实现
- 修复了使 SSE4.2 算法比预期慢得多的错误,因此性能也有所提高。
- 需要 Rust 1.27
- 0.1.8
- 由 @tari 调整 crate 关键字
- 除此之外(未修改 crate 本身)只有测试和基准测试更改
- 0.1.7
- 该 crate 可选无-std。常规和pcmp都支持此模式。
- 0.1.6
- 从标准编译中删除了隐藏的内部测试模块集,技术上为 pub。
- 0.1.5
- 从奇数依赖项更新到使用unchecked-index(仅用于 pcmp 功能)。
- 从标准编译中删除了隐藏的内部测试模块 tw,技术上为 pub。
- 0.1.4
- 将 memchr 依赖项更新到 2.0
- 0.1.3
- 链接到 docs.rs 文档
- 删除pcmp's itertools 依赖项
- 更新夜间代码以反映最近的变化
- 0.1.2
- 模块的pcmp改进。
- 0.1.1
- 添加rfind_bytes, rfind_str
- 0.1.0
- 首次发布
- 添加find_bytes, find_str
许可证
MIT / Apache-2.0
注意
考虑拒绝0/n因子分解,请参阅http://lists.gnu.org/archive/html/bug-gnulib/2010-06/msg00184.html
依赖项
~185–350KB