2 个不稳定版本

使用旧的 Rust 2015

0.1.0 2017年7月18日
0.0.1 2017年6月14日

#1428 in 数据结构

MIT/Apache

72KB
2K SLoC

Rudy

Rudy 是 Rust 中的 Judy 数组实现。Judy 数组是非常高效的词到词或词到布尔映射,适用于不同的数据。参考 Judy 数组实现 提供了词到词映射(JudyL)、一组词(Judy1)、字符串到词(JudySL)以及固定长度字节数组到词映射(JudyHS)。Judy 数组使用压缩的 256 进制字典树。

初始的 Rudy 实现将实现 JudyL 为 RudyMap 和 Judy1 为 RudySet。因为零大小类型可以用 RudyMap 来表示,所以将 RudySet 表示为 RudyMap 的包装将会非常简单。未来的迭代可能包括 JudySL 和 JudyHS 支持。

Judy 和 Rudy 的区别

Rudy 似乎是第一个在核心库中使用泛型的实现。C++ 的 judy-template 绑定允许自动将词转换为和从词转换,但不能使用需要更大存储空间的值。使用泛型允许对于较小的类型使用更低的内存使用,同时可以使用更大的类型,这可能会影响性能。

状态

  • 通用库结构
  • 顶级根节点
    • Leaf1
    • Leaf2
    • VecLeaf
  • JPM
    • 线性 Leaf
    • 位图 Leaf
    • 位图分支
    • 线性分支
    • 未压缩分支
  • 插入
  • 获取
  • 移除
  • 内存使用
  • 缩小
  • 迭代器

许可证

Rudy 在 MIT 和 Apache-2.0 许可证下双许可。

依赖

~245KB