retable 0.6.0

一个Atomic-like的双索引<实体-属性>数据结构
Documentation

Retable

A Rust library for Atomic-like double-indexed entity-attribute data structures.

Atom

Atom is a way to describe a single entity-attribute pair.

Field Name Size(in bytes) Description
EID 8bytes Entity ID, a unique ID for an entity.
PropertyName 8bytes A fixed size string to describe the attribute.
Value 32bytes A value to describe the attribute, see below.
  • Endian: Little Endian, rust native.
  • Codec: Using rust Bincode to encode/decode.

Value Enum

1 byte to describe the value type enum. 31 bytes contain the data.

Supports the following types(in rust):

  • Bool(bool)
  • EID(EID)
  • UInt(u64)
  • Int(i64)
  • Float(f64)
  • UInt3([u64; 3])
  • Int3([i64; 3])
  • Float3([f64; 3])
  • UInt2([u64; 2])
  • Int2([i64; 2])
  • Float2([f64; 2])
  • Mark(30-bit str)

Features

  • Double indexed by Entity ID and Property Name.
  • Built on top of sled and moka
  • Thread-safe
  • No unsafe code

Roadmap

  • Basic implementation.
  • Documentation.
  • Benchmark.
  • Use sparse index to fetch more dense in-memory performance.

Written by RuofengX · Used in entropy-rs, the Game

License by MIT.