#data #data-oriented #data-oriented-design #array #mmap #resizable #mutable

persistence

基于mmap实现的可调整大小、可变数组类型,为内存中的数据数组提供持久性

7个版本

0.0.6 2023年6月24日
0.0.5 2019年10月1日
0.0.3 2019年9月28日

内存管理 中排名 164

每月下载 30

ISC 许可证

23KB
267

persistence – 基于 mmap 的可变可调整大小数组

Crates.io Docs.rs

这个Rust库提供了 MmapedVec;一个基于 mmap() 的可调整大小、可变数组类型,提供内置的持久化到磁盘的类似 Vec 数据结构。

MmapedVec 面向希望在其运行时环境中使用 面向数据设计 技术的开发的开发者,其中以下所有条件都成立

  1. 您已确定类似 Vec 的数据结构适合您的某些或全部数据,并且
  2. 您需要将有关数据持久化到磁盘,并且
  3. 您需要在数据被修改(添加、删除或更改)后的一定时间或间隔内将数据同步到磁盘,这样程序异常终止(例如程序崩溃、断电等)时数据损失最小,并且
  4. 您有信心所有依赖磁盘上数据的进程都遵守我们对它们应用的咨询锁,从而确保数据的完整性,并且
  5. 您希望,或者至少可以接受,您的数据在磁盘上的表示与内存中的表示相同,并理解这意味着文件与它们被保存到磁盘上的宿主机的CPU架构相关联。如果您将来需要将数据迁移到具有不同CPU架构的计算机,您将在那时进行转换,而不是总是在其他格式和内存表示之间序列化和反序列化您的数据。

咨询锁

此库在Unix平台(Linux、macOS、FreeBSD等)上使用BSD flock() 咨询锁。

只要您的软件运行的环境中的任何尝试打开您要持久化数据的文件的过程都遵守咨询锁,一切都会顺利 :)

了解更多并开始使用

阅读文档 了解此库的用途以及如何使用它。

在GitHub上关注我

如果您觉得这个库有趣或有用,别忘了在GitHub上 关注persistence

依赖项

~89–300KB