mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-15 22:28:10 +08:00
* Add document-container crate: container backends and archive codecs * Address PR review: path/prefix split, safe size casts, OPFS stream aborts * Address PR review round 2: mmap read check, UTF8 entry names, prefix normalization * Make MmappedBytes::new fallible so mmap reads can't silently degrade * Address PR review round 3: backend contract uniformity (symlinks, remove, list) * Apply symlink-component check to FolderBackend listing paths * Address PR review: idempotent OPFS delete logging, tar default-features, shared entry-size cap * Fix validate_path doc: dotfiles pass, CurDir/ParentDir rejected * Omit symlink entries from FolderBackend listings for consistency with resolve * Preserve zip I/O errors and reject non-canonical paths in validate_path * Extend archive apis to return the archive writer * Rename document/document-container directory to document/container * Add archive format sniffing and deserialize_auto * Drop temporal hedge from checked_entry_size comment * Tighten verbose doc comments in document-container * Coalesce consecutive same-path OPFS appends to avoid O(n^2) file copies * Review * Update document-container for the deserialize/store_non_blocking renames --------- Co-authored-by: Timon <me@timon.zip>
49 lines
1.3 KiB
TOML
49 lines
1.3 KiB
TOML
[package]
|
|
name = "document-container"
|
|
description = "Container abstraction for the on-disk side of the .gdd document format"
|
|
edition.workspace = true
|
|
version.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
|
|
[features]
|
|
default = []
|
|
zip = ["dep:zip"]
|
|
xz = ["dep:lzma-rust2", "dep:tar"]
|
|
|
|
[dependencies]
|
|
thiserror = "2.0"
|
|
log = { workspace = true }
|
|
zip = { workspace = true, optional = true, features = ["deflate-flate2-zlib-rs"], default-features = false}
|
|
lzma-rust2 = { workspace = true, optional = true }
|
|
tar = { version = "0.4", optional = true, default-features = false }
|
|
|
|
[target.'cfg(not(target_family = "wasm"))'.dependencies]
|
|
mmap-io = { workspace = true }
|
|
|
|
[target.'cfg(target_family = "wasm")'.dependencies]
|
|
web-sys = { workspace = true, features = [
|
|
"Navigator",
|
|
"DomException",
|
|
"Window",
|
|
"StorageManager",
|
|
"FileSystemCreateWritableOptions",
|
|
"FileSystemDirectoryHandle",
|
|
"FileSystemFileHandle",
|
|
"FileSystemGetFileOptions",
|
|
"FileSystemGetDirectoryOptions",
|
|
"FileSystemHandle",
|
|
"FileSystemHandleKind",
|
|
"FileSystemWritableFileStream",
|
|
"WritableStream",
|
|
"Blob",
|
|
] }
|
|
js-sys = { workspace = true }
|
|
wasm-bindgen = { workspace = true }
|
|
wasm-bindgen-futures = { workspace = true }
|
|
futures = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|
|
futures = { workspace = true }
|