graph_d 1.3.2

A native graph database implementation in Rust with built-in JSON support and SQLite-like simplicity
Documentation
# ═══════════════════════════════════════════════════════════════════════════════
# Graph_D - Native Graph Database in Rust
# ═══════════════════════════════════════════════════════════════════════════════
# Satisfies: RT-1 (dual lib+bin structure)
# Satisfies: RT-2 (CLI deps isolated via feature flag)
# Satisfies: RT-7 (complete crates.io metadata)
# Satisfies: T1, T2, T7, B1, B3
# ═══════════════════════════════════════════════════════════════════════════════

[package]
name = "graph_d"
version = "1.3.2"
edition = "2021"
rust-version = "1.92"  # Satisfies: T7 (MSRV documented)
authors = ["Graph DB Team"]
description = "A native graph database implementation in Rust with built-in JSON support and SQLite-like simplicity"
license = "MIT OR Apache-2.0"
repository = "https://github.com/your-org/graph_d"
homepage = "https://github.com/your-org/graph_d"
documentation = "https://docs.rs/graph_d"
readme = "README.md"
keywords = ["database", "graph", "embedded", "gql", "json"]  # Satisfies: RT-7
categories = ["database", "database-implementations"]  # Satisfies: RT-7

# Satisfies: RT-1 - Explicit library configuration
[lib]
name = "graph_d"
path = "src/lib.rs"

# Satisfies: RT-1, RT-2 - Binary requires 'cli' feature
[[bin]]
name = "graph_d"
path = "src/bin/graph_d.rs"
required-features = ["cli"]

# ═══════════════════════════════════════════════════════════════════════════════
# Dependencies - Core library (always included)
# ═══════════════════════════════════════════════════════════════════════════════

[dependencies]
# Serialization
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = "1.3"

# Async runtime
tokio = { version = "1.0", features = ["full"] }

# Synchronization
parking_lot = "0.12"

# Storage
memmap2 = "0.9"

# Memory management
bytemuck = { version = "1.0", features = ["derive"] }
bumpalo = "3.14"
lru = "0.12"

# ═══════════════════════════════════════════════════════════════════════════════
# CLI Dependencies - Optional, behind 'cli' feature
# Satisfies: RT-2, TN1 resolution (feature flag approach)
# ═══════════════════════════════════════════════════════════════════════════════

# CLI argument parsing
clap = { version = "4.4", features = ["derive", "env"], optional = true }

# Interactive shell
rustyline = { version = "13.0", optional = true }

# Colored output
colored = { version = "2.1", optional = true }

# Table formatting for query results
tabled = { version = "0.15", optional = true }

# ═══════════════════════════════════════════════════════════════════════════════
# Development Dependencies
# ═══════════════════════════════════════════════════════════════════════════════

[dev-dependencies]
criterion = { version = "0.5", features = ["html_reports"] }
proptest = "1.0"
tempfile = "3.0"

# ═══════════════════════════════════════════════════════════════════════════════
# Features
# Satisfies: RT-2 (CLI deps isolated), TN1 (feature flag resolution)
# ═══════════════════════════════════════════════════════════════════════════════

[features]
# Default features for library users (minimal footprint)
default = []

# CLI feature - enables binary and CLI-specific dependencies
# Use: cargo install graph_d --features cli
# Or:  cargo build --features cli
cli = ["dep:clap", "dep:rustyline", "dep:colored", "dep:tabled"]

# Internal/advanced features
unsafe-allocators = []
wal = []  # Enable Write-Ahead Logging for crash recovery

# ═══════════════════════════════════════════════════════════════════════════════
# Benchmarks
# ═══════════════════════════════════════════════════════════════════════════════

[[bench]]
name = "graph_benchmarks"
harness = false

# ═══════════════════════════════════════════════════════════════════════════════
# Build Profiles
# ═══════════════════════════════════════════════════════════════════════════════

[profile.release]
lto = true
codegen-units = 1
panic = "abort"

[profile.bench]
debug = true

# ═══════════════════════════════════════════════════════════════════════════════
# Package Metadata for cargo-dist
# Satisfies: RT-5 (cross-platform binary distribution)
# ═══════════════════════════════════════════════════════════════════════════════

[package.metadata.dist]
# Platforms to build binaries for
targets = [
    "x86_64-unknown-linux-gnu",
    "x86_64-apple-darwin",
    "aarch64-apple-darwin",
    "x86_64-pc-windows-msvc"
]
# Include CLI feature in distributed binaries
features = ["cli"]