6个版本

使用旧Rust 2015

0.2.2 2017年7月26日
0.2.1 2017年6月29日
0.1.2 2017年5月20日
0.1.1 2017年1月4日

#2479数据结构

Apache-2.0

73KB
1.5K SLoC

vertree

Build Status

API文档

这是一个提供“vertree”数据结构的库。此数据结构具有以下核心特性

  • 数据的分层存储(一棵树)
  • 叶子上的丰富数据结构(不仅仅是blob)
  • 对项目和子树的任何更改的线性版本化
  • CAS和相关操作

vertree的分层结构与传统的文件系统类似。每个内部(非叶子)节点是一个“目录”节点,它是UTF-8字符串到该目录子节点的映射。每个叶子节点具有特定的数据类型,如Blob、Queue或Set,节点中可用的操作可用于修改节点中的数据。队列和集合节点内的子项始终是Blob,因此叶子节点本身的内容并不复杂。

vertree的一个基本特性是每个节点都有一个版本。对叶子节点内容(如将某物推入队列)或对vertree本身(如创建或删除节点)的任何更改都会导致在发生更改的节点以及每个上层节点中版本的增加。这使得具有特殊功能:vertree中的操作可以基于单个节点或任意子树进行条件化,从而使用户之间能够轻松实现乐观并发。

依赖项

~3.5–5MB
~104K SLoC