#ecs #atomic #data-structures #entity-attribute #double-indexed

retable

类似于原子操作的二次索引实体属性数据结构

14 个版本

0.7.0-alpha.52024 年 1 月 9 日
0.7.0-alpha.32023 年 12 月 30 日
0.5.0 2023 年 11 月 28 日

731数据库接口

Download history 5/week @ 2024-04-02

每月 310 次下载

MIT 许可证

17KB
266

Retable

Rust 库,用于类似于原子操作的二次索引实体属性数据结构。

此库包含

  • 原子协议,一种描述数据库修改的协议。
  • 原子协议的简单实现,使用 [im].

原子

原子是一种描述数据库修改的方式。

数据部分 数据类型 字段长度 描述
操作 u8 1 字节 四种基本修改操作的枚举。
K(泛型) 零或任何 索引键的类型。
V(泛型) 零或任何 存储值的类型。
增量 D(泛型) 零或任何 修改值的类型。
  • 端序:小端序,Rust 本地。
  • 编解码器:使用 rust zerocopy 进行编码/解码。

请注意,由于数据结构由用户定义,因此没有空字段的占位符。换句话说,原子使用打包布局来存储数据。因此,这些结构体具有相同的内存布局

  • Atom<u8,u16,()>
  • Atom<u8,(),u16>
  • Atom<u8,u8,u8>
  • Atom<u16,u8,()>
  • 等等...

路线图

  • 冻结原子协议。
  • 使用 im 作为基本实现。
  • 支持异步非阻塞操作。
  • 文档。
  • 外部消息队列支持。
  • 基准测试。
  • 自动缩小内部数据以使其更加密集。

由 RuofengX 编写 · 用于 entropy-rs,游戏

MIT 许可。

依赖关系

~1.4–7.5MB
~39K SLoC