[package]
name = "fs-core"
version = "0.2.1"
edition = "2024"
resolver = "3"
description = "Ephemeral in-memory filesystem for WebAssembly (no_std compatible)"
license = "MIT"
repository = "https://github.com/ternbusty/monaka-fs"
keywords = ["wasm", "filesystem", "wasi", "no-std", "in-memory"]
categories = ["wasm", "filesystem", "no-std"]

[dependencies]
log = { version = "0.4", optional = true, default-features = false }
serde = { version = "1.0", default-features = false, features = ["derive", "alloc"], optional = true }
serde_bytes = { version = "0.11", default-features = false, features = ["alloc"], optional = true }
dashmap = { version = "6", optional = true }

[dev-dependencies]
serde_json = "1.0"

[features]
default = ["std"]
std = []
# Enable thread-safe mode: uses Arc<RwLock> + DashMap instead of Rc<RefCell> + HashMap
# Required for vfs-host (wasmtime Host trait requires Send + Sync)
# Not needed for vfs-adapter or vfs-rpc-server (they run inside WASM boundary)
thread-safe = ["dashmap"]
logging = ["dep:log"]
serde = ["dep:serde", "dep:serde_bytes"]
