[package] name = "noosphere-core" version = "0.18.1" edition = "2021" description = "Core data types of the Rust Noosphere implementation" keywords = ["hamt", "ipld", "noosphere", "p2p", "async"] categories = [ "data-structures", "asynchronous", "encoding", "web-programming", "web-assembly" ] rust-version = "1.60.0" license = "MIT OR Apache-2.0" documentation = "https://docs.rs/noosphere-core" repository = "https://github.com/subconsciousnetwork/noosphere" homepage = "https://github.com/subconsciousnetwork/noosphere" readme = "README.md" [features] default = [] sentry = ["dep:sentry-tracing"] helpers = [] [dependencies] tracing = { workspace = true } cid = { workspace = true } url = { workspace = true, features = ["serde"] } async-trait = "~0.1" async-recursion = { workspace = true } async-stream = { workspace = true } # NOTE: async-once-cell 0.4.0 shipped unstable feature usage async-once-cell = "~0.4" anyhow = { workspace = true } http = { version = "^1" } # Keep in sync with `axum` axum-extra = { workspace = true, features = ["typed-header"] } bytes = { workspace = true } instant = { workspace = true } iroh-car = { workspace = true } thiserror = { workspace = true } fastcdc = { workspace = true } futures = { workspace = true } futures-util = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } serde_urlencoded = { workspace = true } base64 = { workspace = true } ed25519-zebra = "^3" rand = { workspace = true } once_cell = "^1" tiny-bip39 = "^1" tokio-stream = { workspace = true } libipld-core = { workspace = true } libipld-cbor = { workspace = true } reqwest = { workspace = true } strum = { workspace = true } strum_macros = { workspace = true } tokio-util = { workspace = true, features = ["io"] } noosphere-common = { version = "0.1.2", path = "../noosphere-common" } noosphere-storage = { version = "0.10.1", path = "../noosphere-storage" } noosphere-collections = { version = "0.7.1", path = "../noosphere-collections" } ucan = { workspace = true } ucan-key-support = { workspace = true } sentry-tracing = { workspace = true, optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio = { workspace = true, features = ["full"] } tracing-subscriber = { workspace = true } [target.'cfg(target_arch = "wasm32")'.dependencies] # NOTE: This is needed so that rand can be included in WASM builds getrandom = { version = "~0.2", features = ["js"] } gloo-net = { workspace = true } wasm-streams = { workspace = true } wasm-bindgen = { workspace = true } js-sys = { workspace = true } tokio = { workspace = true, features = ["sync", "macros"] } console_error_panic_hook = "0.1" tracing-wasm = "~0.2" [target.'cfg(target_arch = "wasm32")'.dependencies.web-sys] workspace = true features = [ "ReadableStream" ]