Files
moli/moli-websocket/Cargo.toml
ldm0 a587a5ecee perf(indexeddb): load Blob bodies on demand across consumers
Return immutable stored Blob/File sources without eagerly reading their bodies. Keep metadata, clone and slice lazy; route consumption through the owner, stream in chunks, and preserve handed-out data before destructive changes or retirement.

Adapt FileReader, Clipboard, WebSocket and OPFS together with the source representation. Share Fetch/XHR object-body extraction and propagate Blob and multipart read failures instead of string coercion. Preserve cancellation, ordering, backpressure, quota, permission/error semantics and realm cleanup across consumers.
2026-10-30 20:27:08 +08:00

40 lines
2.0 KiB
TOML

[package]
license.workspace = true
name = "moli-websocket"
version = "0.1.0"
edition = "2024"
[features]
test-support = ["dep:rcgen", "dep:openssl", "dep:tokio-tungstenite", "dep:tokio-rustls", "dep:rustls", "dep:futures-util", "tokio/net", "tokio/io-util"]
[dependencies]
moli-header-field = { path = "../moli-header-field" }
base64 = "0.22"
moli-curl = { path = "../moli-curl" }
moli-crypto = { path = "../moli-crypto" }
moli-file-api = { path = "../moli-file-api" }
futures-util = { version = "0.3", default-features = false, features = ["sink", "std"], optional = true }
http = "1"
moli-url = { path = "../moli-url" }
urlencoding = "2.1"
rcgen = { version = "0.13", default-features = false, features = ["aws_lc_rs", "pem"], optional = true }
openssl = { version = "0.10", optional = true }
rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs", "logging", "prefer-post-quantum", "std", "tls12"], optional = true }
tokio = { version = "1.51.0", features = ["macros", "rt-multi-thread", "sync", "time"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["aws_lc_rs", "logging", "tls12"], optional = true }
tokio-tungstenite = { version = "0.28.0", default-features = false, features = ["handshake", "__rustls-tls"], optional = true }
url = "2.5.7"
[dev-dependencies]
parking_lot = "0.12"
futures-util = { version = "0.3", default-features = false, features = ["sink", "std"] }
rustls = { version = "0.23", default-features = false, features = ["aws_lc_rs", "logging", "prefer-post-quantum", "std", "tls12"] }
tokio = { version = "1.51.0", features = ["io-util", "macros", "net", "rt-multi-thread", "sync", "time"] }
tokio-rustls = { version = "0.26", default-features = false, features = ["aws_lc_rs", "logging", "tls12"] }
tokio-tungstenite = { version = "0.28.0", default-features = false, features = ["handshake", "__rustls-tls"] }
rcgen = { version = "0.13", default-features = false, features = ["aws_lc_rs", "pem"] }
openssl = "0.10"
[lints]
workspace = true