ternary-version 0.1.0

Version vectors with ternary comparison for distributed GPU state. {+1=newer, 0=concurrent, -1=older}. Conflict detection, merge, dominance.
Documentation
  • Coverage
  • 22.22%
    4 out of 18 items documented0 out of 14 items with examples
  • Size
  • Source code size: 8.82 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 412.3 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 2s Average build duration of successful builds.
  • all releases: 2s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • SuperInstance/ternary-version
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • SuperInstance

ternary-version

Version vectors with ternary comparison for distributed GPU state. {+1=newer, 0=concurrent, -1=older}. Conflict detection, merge, dominance.

Why This Matters

ternary-version

Version vectors with ternary comparison for distributed GPU state.

The Five-Layer Stack

This crate is part of the Oxide Stack — a distributed GPU runtime built on five layers:

┌─────────────────┐
│  cudaclaw        │  Persistent GPU kernels, warp consensus, SmartCRDT
├─────────────────┤
│  cuda-oxide      │  Flux → MIR → Pliron → NVVM → PTX compiler
├─────────────────┤
│  flux-core       │  Bytecode VM + A2A agent protocol
├─────────────────┤
│  pincher         │  "Vector DB as runtime, LLM as compiler"
├─────────────────┤
│  open-parallel   │  Async runtime (tokio fork)
└─────────────────┘

The key insight: ternary values {-1, 0, +1} map directly to GPU compute. They pack 16× denser than FP32, enable XNOR+popcount matmul, and conservation laws become compile-time checks.

Design

Every value in this crate follows ternary algebra (Z₃):

Value Meaning GPU Analog
+1 Positive / Active / Healthy Warp vote yes
0 Neutral / Pending / Balanced Warp vote abstain
-1 Negative / Failed / Overloaded Warp vote no

This isn't arbitrary — ternary is the natural encoding for:

  1. BitNet b1.58 (Microsoft) — ternary LLMs at 60% less power
  2. GPU warp voting — hardware ballot returns ternary consensus
  3. Conservation laws — {-1, 0, +1} preserves quantity

Key Types

pub enum VersionOrder
pub struct VersionVector
pub fn new
pub fn increment
pub fn get
pub fn set
pub fn compare
pub fn merge
pub fn is_empty
pub fn node_count
pub struct ConflictResolver
pub fn new

Usage

[dependencies]
ternary-version = "0.1.0"
use ternary_version::*;
// See src/lib.rs tests for complete working examples

Testing

git clone https://github.com/SuperInstance/ternary-version.git
cd ternary-version
cargo test    # 8 tests

Stats

Metric Value
Tests 8
Lines of Rust 166
Public API 14 items

License

Apache-2.0