Add graph-storage crate (#4198)

* Add graph-storage crate

* Split graph-storage lib.rs into smaller modules

* Make graph_craft/core_types dependency optional

* Fix CRDT correctness issues flagged in graph-storage PR review

* Treat trailing empty export slots as value-equal in Network::value_equal

* Address graph-storage review: parameterize CrdtError, reject hot-log corruption, drop LamportClock Default

* Address graph-storage review: fix root-delta history walk, validate cross-network refs, make compute_deltas deterministic, harden Priority, index nodes by network

* Address graph-storage review: sort sources on deserialize, treat inputs_attributes length as structural, dedupe demo-artwork loader

* Add opt-in Delta rev validation, dedup resource sources on deserialize, fix doc grammar

* Persist scope injections through storage; harden gesture-end and embedded-source checks

* Review

* Review

* Review

* Use new types for NodeId and NetworkId

* Adress minor review comments

---------

Co-authored-by: Timon <me@timon.zip>
This commit is contained in:
Dennis Kobert
2026-06-13 16:47:04 +00:00
committed by GitHub
co-authored by Timon
parent cde8dd78e6
commit b56af15e5e
20 changed files with 5261 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
pub use graphene_resource::{ResourceHash, ResourceId};
pub mod attributes;
pub mod crdt;
pub mod delta;
pub mod document;
pub mod ids;
pub mod model;
pub mod registry;
pub mod resources;
pub mod session;
#[cfg(any(feature = "conversion", test))]
pub mod from_runtime;
#[cfg(any(feature = "conversion", test))]
pub mod metadata_source;
#[cfg(any(feature = "conversion", test))]
pub mod to_runtime;
pub use attributes::*;
pub use crdt::*;
pub use document::*;
pub use from_runtime::{RuntimeConversion, decode_declaration, encode_declaration};
pub use ids::*;
pub use metadata_source::{InputMetadataEntry, NetworkMetadataEntry, NoMetadata, NodeMetadataEntry, NodeMetadataSource, Position};
pub use model::*;
pub use registry::*;
pub use resources::*;
pub use session::*;
pub use to_runtime::Declarations;
#[cfg(test)]
mod tests {
mod crdt;
mod round_trip;
}