#parallel #tuple-space #object-store #linda

nightly object-space

为使用 Rust 编写的极高并发程序提供的对象存储库

2 个版本

使用旧版 Rust 2015

0.1.1 2018 年 6 月 19 日
0.1.0 2018 年 6 月 19 日

#700 in 并发

Apache-2.0/MIT

82KB
1.5K SLoC

rs-object-space

此 crate 是 ObjectSpace 的实现,ObjectSpace 是基于 Gelernter 在 1985 年提出的 元组空间 的概念的自然发展。ObjectSpace 是一种能够持有任何结构(例如:字符串、整数和复杂结构都可以存在于 ObjectSpace 中)的数据结构。它还允许根据字段的值检索结构。

此 crate 还提供了一个完全线程安全的 ObjectSpace 实现,允许简单的并发和分布式编程。

此 crate 需要使用 Rust nightly 版本进行构建和用途。

构建

您需要 Rust 的 nightly 版本来构建库。要安装 nightly Rust,首先按照 这些说明 安装 Rustup,然后在终端中执行 rustup install nightly

要构建库,请运行 cargo build,或运行 cargo build --release 获取完全优化的版本。要运行库的测试,请运行 cargo test

要构建文档,请运行 cargo doc。文档可在 target/doc/object_space/index.html 找到。

构建和运行示例

examples 文件夹中有两个示例:primes 计算小于一个数的所有素数,reminder 是一个简单的使用 ObjectSpace 的提醒程序。

要构建/运行示例,请执行 cargo build(run) --example <example_name>。例如:cargo run --example reminder

白皮书

我们为此项目提供了一份白皮书。白皮书详细说明了这个项目的灵感和目标。白皮书的内容可以在paper/final_paper.md中找到。虽然它以Markdown格式可读,但该文档旨在以由Pandoc生成的PDF文件的形式阅读。要生成PDF文件,请确保您已安装Pandoc,使用cd命令切换到paper文件夹并运行

pandoc --filter pandoc-citeproc final_paper.md -o final_paper.pdf

可以在ResearchGate上找到该论文的预编译PDF版本,DOI为10.13140/RG.2.2.32432.05124。请注意,这个版本(生成于2018年6月19日)可能在未来会过时。

问题

有关正在进行的问题的更多信息,请参阅问题部分。目前,最重要的问题是

  • 完成代理接口 #3
  • 阻塞读取超时 #6

依赖项

~2.7–4MB
~72K SLoC