mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 14:18:04 +08:00
* Add document-format crate * Adapt document-format to merged graph-storage and consolidate errors * Fix resource write ordering, codec error masking, and export docs * Remove document-format RFC; tracked in a dedicated PR * Restructure document-format into gdd/persist/export/resource modules Split the 963-line lib.rs by responsibility: persist path into persist.rs, resource I/O into resource.rs, export engine into export.rs. Rename the GddV1 layout struct to GddV1Layout and add a GddV1 = Gdd<GddV1Layout> alias. * Feature-split document-format and graph-storage for minimal builds * Address PR review: O(1) history-delta lookup and no-default-features test build * Address PR review: propagate apply_hot_op persist error and assert resource hash * Make decompression from archive streaming * Share archive export body between export and export_to_bytes * Review cleanup * Export documents with un-retired hot ops losslessly * Persist last_broadcast_rev in session.json, drop unused last_retired_at * Move peer_id from manifest to session.json * Rename gesture to interaction in document-format storage layer
37 lines
1.4 KiB
TOML
37 lines
1.4 KiB
TOML
[package]
|
|
name = "document-format"
|
|
description = "Typed handle for the .gdd document format, sitting over graph-storage and document-container"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
|
|
[features]
|
|
# Runtime bridge: the editor↔storage conversion methods (stage/commit from a `NodeNetwork`,
|
|
# `network_ids`, `declarations`). Off lets a standalone migration tool build without `graph-craft`
|
|
# or `core-types`. Forwards to `graph-storage/conversion`.
|
|
conversion = ["graph-storage/conversion", "dep:graph-craft", "dep:core-types"]
|
|
# Compressed-archive export/open. Each forwards to the matching `document-container` feature and
|
|
# gates that format's `ExportFormat` arm and sink. The folder/memory codec-free core needs neither.
|
|
zip = ["document-container/zip"]
|
|
xz = ["document-container/xz"]
|
|
default = ["conversion", "zip", "xz"]
|
|
|
|
[dependencies]
|
|
document-container = { workspace = true }
|
|
graph-storage = { workspace = true, default-features = false }
|
|
graph-craft = { workspace = true, optional = true }
|
|
graphene-resource = { workspace = true }
|
|
core-types = { workspace = true, optional = true }
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
rmp-serde = { workspace = true }
|
|
futures = { workspace = true }
|
|
thiserror = "2.0"
|
|
log = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
futures = { workspace = true }
|
|
graphene-resource = { workspace = true }
|
|
tempfile = "3"
|