graphrefly-graph 0.0.7

GraphReFly Graph container, describe/observe, content-addressed snapshots
Documentation
[package]
name        = "graphrefly-graph"
description = "GraphReFly Graph container, describe/observe, content-addressed snapshots"
version.workspace      = true
edition.workspace      = true
rust-version.workspace = true
license.workspace      = true
repository.workspace   = true
homepage.workspace     = true
authors.workspace      = true

[dependencies]
graphrefly-core       = { workspace = true }

# Namespace + lifecycle bookkeeping
indexmap              = { workspace = true, features = ["serde"] }
parking_lot           = { workspace = true }

# Serialization stack
serde                 = { workspace = true, features = ["derive"] }
# serde_json is non-optional now — describe()'s `meta` field uses
# serde_json::Value for free-form JSON metadata (canonical Appendix B).
serde_json            = { workspace = true }
serde_ipld_dagcbor    = { workspace = true, optional = true }
ciborium              = { workspace = true, optional = true }

# Content addressing — V1–V3 CIDs (roadmap Phase 6.1–6.3)
cid                   = { workspace = true, optional = true }
multihash             = { workspace = true, optional = true }
multibase             = { workspace = true, optional = true }
blake3                = { workspace = true, optional = true }
sha2                  = { workspace = true, optional = true }

# Compression — DagCborZstdCodec
zstd                  = { workspace = true, optional = true }

thiserror             = { workspace = true }
tracing               = { workspace = true }

[features]
default            = ["dag-cbor", "content-addressing"]
dag-cbor           = ["dep:serde_ipld_dagcbor"]
cbor               = ["dep:ciborium"]
content-addressing = ["dep:cid", "dep:multihash", "dep:multibase", "dep:blake3"]
sha2-interop       = ["dep:sha2"]
zstd-codec         = ["dep:zstd", "dag-cbor"]