# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.75"
name = "logicaffeine-system"
version = "0.9.3"
authors = ["Tristen Harr <tristen@brahmastra-labs.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Platform IO and system services for LOGOS"
homepage = "https://logicaffeine.com"
readme = "README.md"
keywords = [
    "logic",
    "proof-assistant",
    "theorem-prover",
    "first-order-logic",
    "formal-methods",
]
categories = [
    "mathematics",
    "compilers",
    "science",
]
license = "BUSL-1.1"
repository = "https://github.com/Brahmastra-Labs/logicaffeine"

[package.metadata.docs.rs]
features = ["full"]

[features]
concurrency = [
    "dep:rayon",
    "dep:bumpalo",
]
default = []
distributed = [
    "networking",
    "persistence",
]
full = [
    "networking",
    "persistence",
    "concurrency",
]
io-uring = [
    "dep:io-uring",
    "dep:crossbeam-channel",
    "persistence",
]
networking = [
    "dep:libp2p",
    "dep:futures",
]
persistence = [
    "dep:memmap2",
    "dep:sha2",
]

[lib]
name = "logicaffeine_system"
path = "src/lib.rs"

[dependencies.async-lock]
version = "3.4"

[dependencies.async-trait]
version = "0.1"

[dependencies.bincode]
version = "1.3"

[dependencies.bumpalo]
version = "3.19"
optional = true

[dependencies.crc32fast]
version = "1.3"

[dependencies.futures]
version = "0.3"
optional = true

[dependencies.libp2p]
version = "0.54"
features = [
    "tcp",
    "quic",
    "noise",
    "yamux",
    "mdns",
    "request-response",
    "gossipsub",
    "macros",
    "tokio",
]
optional = true

[dependencies.logicaffeine-base]
version = "0.9.3"

[dependencies.logicaffeine-data]
version = "0.9.3"

[dependencies.memmap2]
version = "0.9"
optional = true

[dependencies.once_cell]
version = "1.19"

[dependencies.rayon]
version = "1.10"
optional = true

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.sha2]
version = "0.10"
optional = true

[dev-dependencies.tempfile]
version = "3.10"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.getrandom]
version = "0.2"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rand]
version = "0.8"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1"
features = [
    "rt-multi-thread",
    "macros",
    "sync",
    "time",
    "fs",
    "io-util",
]

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.uuid]
version = "1.0"
features = ["v4"]

[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.2"
features = ["js"]

[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"

[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4"

[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
    "Window",
    "Navigator",
    "StorageManager",
    "FileSystemDirectoryHandle",
    "FileSystemFileHandle",
    "FileSystemWritableFileStream",
    "FileSystemGetFileOptions",
    "FileSystemGetDirectoryOptions",
    "FileSystemCreateWritableOptions",
    "File",
    "Blob",
    "DomException",
    "Worker",
    "WorkerOptions",
    "WorkerType",
    "MessageEvent",
    "ErrorEvent",
    "IdbFactory",
    "IdbDatabase",
    "IdbObjectStore",
    "IdbRequest",
    "IdbTransaction",
    "IdbTransactionMode",
    "IdbOpenDbRequest",
    "IdbVersionChangeEvent",
    "IdbObjectStoreParameters",
    "Event",
    "EventTarget",
    "DomStringList",
]

[target.'cfg(target_os = "linux")'.dependencies.crossbeam-channel]
version = "0.5"
optional = true

[target.'cfg(target_os = "linux")'.dependencies.io-uring]
version = "0.7"
optional = true
