Thank you for your interest in contributing to VeriSimDB. This document explains how to get started, our development workflow, and how to submit changes.
- Rust (nightly) —
asdf install rust nightlyorrustup install nightly - Elixir 1.17+ with Erlang/OTP 27+ —
asdf install elixir/asdf install erlang - Podman — for container builds (never Docker)
# Clone the repository
git clone https://github.com/hyperpolymath/verisimdb.git
cd verisimdb
# Build Rust core
cargo build
cargo test
# Build Elixir orchestration
cd elixir-orchestration
mix deps.get
mix compile
mix testverisimdb/
├── rust-core/ # Rust crates (14 workspace members)
│ ├── verisim-api/ # HTTP/gRPC API server
│ ├── verisim-graph/ # Graph modality (RDF/Property Graph)
│ ├── verisim-vector/ # Vector modality (HNSW)
│ ├── verisim-tensor/ # Tensor modality (Burn)
│ ├── verisim-semantic/ # Semantic modality (CBOR proofs)
│ ├── verisim-document/ # Document modality (Tantivy)
│ ├── verisim-temporal/ # Temporal modality (versioning)
│ ├── verisim-octad/ # Unified 6-modal entity
│ ├── verisim-drift/ # Drift detection
│ ├── verisim-normalizer/ # Self-normalization
│ ├── verisim-planner/ # Cost-based query planner
│ ├── verisim-repl/ # Interactive VQL REPL
│ ├── verisim-wal/ # Write-ahead log
│ └── verisim-storage/ # Storage backend abstraction
├── elixir-orchestration/ # Elixir/OTP coordination layer
├── playground/ # VQL Playground PWA (ReScript)
├── container/ # Containerfile for Podman builds
├── docs/ # Architecture and design documents
├── contractiles/ # Trust, security, and policy contracts
├── .machine_readable/ # SCM checkpoint files
└── .github/workflows/ # CI/CD pipelines
Before reporting:
When reporting, include:
- Clear, descriptive title
- Environment details (OS, Rust version, Elixir version)
- Steps to reproduce
- Expected vs actual behaviour
- Logs, error messages, or minimal reproduction
Before suggesting:
- Check the roadmap
- Search existing issues and discussions
When suggesting, include:
- Problem statement (what pain point does this solve?)
- Proposed solution
- Alternatives considered
- Which modality or component it affects
Look for issues labelled:
good first issue— Simple taskshelp wanted— Community help neededdocumentation— Docs improvements
docs/short-description # Documentation
test/what-added # Test additions
feat/short-description # New features
fix/issue-number-description # Bug fixes
refactor/what-changed # Code improvements
security/what-fixed # Security fixes
We follow Conventional Commits:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types: feat, fix, docs, test, refactor, chore, security
# Rust — all tests
cargo test
# Rust — specific crate
cargo test -p verisim-semantic
# Elixir
cd elixir-orchestration && mix test
# Container build verification
podman build -t verisimdb:latest -f container/Containerfile .# Rust linting
cargo clippy -- -D warnings
# Check formatting
cargo fmt --check| Language | Use Case |
|---|---|
| Rust | Core database engine, modality stores, CLI tools |
| Elixir | OTP orchestration, distributed coordination |
| ReScript | VQL parser, playground PWA |
| VQL | VeriSim Query Language (query interface) |
- TypeScript (use ReScript instead)
- Python (use Rust or Julia instead)
- Go (use Rust instead)
- Node.js/npm/bun (use Deno if JS runtime needed)
By contributing, you agree that your contributions will be licensed under the PMPL-1.0-or-later (Palimpsest License). All source files must include:
// SPDX-License-Identifier: PMPL-1.0-or-later
- Issues: GitHub or GitLab
- Security: See SECURITY.md for vulnerability reporting
- Maintainer: Jonathan D.A. Jewell j.d.a.jewell@open.ac.uk