content: [package]
  name = "screenpipe-server"
  version = { workspace = true }
  authors = { workspace = true }
  description = { workspace = true }
  repository = { workspace = true }
  license = { workspace = true }
  edition = { workspace = true }
  
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
  
  [dependencies]
  serde = { version = "1.0", features = ["derive"] }
  serde_json = "1.0"
  oasgen = { workspace = true }
  
  screenpipe-events = { path = "../screenpipe-events" }
  screenpipe-vision = { path = "../screenpipe-vision" }
  screenpipe-audio = { path = "../screenpipe-audio" }
  screenpipe-core = { path = "../screenpipe-core", features = ["security"] }
  screenpipe-db = { path = "../screenpipe-db" }
  killport = { version = "1.1.0" }
  
  # Image processing
  image = { workspace = true }
  
  # Dates
  chrono = { version = "0.4.31", features = ["serde"] }
  
  # Database
  sqlx = { version = "0.7", features = [
      "sqlite",
      "runtime-tokio-native-tls",
      "chrono",
      "migrate",
  ] }
  
  # Local Embeddings + STT
  candle = { workspace = true }
  candle-nn = { workspace = true }
  candle-transformers = { workspace = true }
  tokenizers = { workspace = true }
  
  anyhow = "1.0.86"
  hf-hub = { workspace = true }
  
  #opentelemetry
  sentry = { workspace = true }
  
  # Server
  axum = { version = "0.7.5", features = ["ws"] }
  tokio = { version = "1.15", features = ["full", "tracing"] }
  tower-http = { version = "0.5.2", features = ["cors", "trace"] }
  
  # Log
  tracing = { workspace = true }
  tracing-subscriber = { workspace = true }
  tracing-appender = { workspace = true }
  console-subscriber = { version = "0.4.1", optional = true }
  # Cli ! shouldn't be required if using as lib
  clap = { version = "4.3", features = ["derive", "env"] }
  
  # Memory watchdog
  sysinfo = "0.29.0"
  
  # Color
  colored = "2.0"
  
  # Completions
  clap_complete = "4.2"
  
  # Plugins
  tower = { version = "0.5", features = ["util"] }
  futures = { version = "0.3.31", features = ["std"] }
  
  # Directory management
  dirs = "5.0"
  
  # Client http
  reqwest = { workspace = true }
  
  # Concurrency
  crossbeam = { workspace = true }
  
  # filtering
  ndarray = "0.15.6"
  rust-stemmers = "1.2.0"
  
  # base64
  base64 = "0.22.1"
  
  uuid = { version = "1.5.0", features = ["v4"] }
  
  tempfile = "3.3.0"
  
  
  url = { version = "2.2.0", optional = true }
  
  
  enigo = "0.3"
  
  # Bincode for serializing hot cache
  bincode = "1.3.3"
  
  # SHA256 for hashing
  sha2 = "0.10.6"
  
  # Fast random number generator
  fastrand = "2.1.1"
  port_check = "0.2.1"
  
  walkdir = "2.3.4"
  
  regex = "1.10.0"
  
  lru = "0.13.0"
  tokio-util = { version = "0.7", features = ["io"] }
  
  once_cell = { workspace = true }
  [dev-dependencies]
  env_logger = "0.10"
  tempfile = "3.3.0"
  tokio-tungstenite = "0.19.0"
  
  # Benches
  criterion = { workspace = true }
  
  [features]
  default = []
  metal = ["candle/metal", "candle-nn/metal", "candle-transformers/metal"]
  cuda = ["candle/cuda", "candle-nn/cuda", "candle-transformers/cuda"]
  mkl = ["candle/mkl", "candle-nn/mkl", "candle-transformers/mkl"]
  llm = []
  experimental = []
  debug-console = ["console-subscriber"]
  
  [[bin]]
  name = "screenpipe"
  path = "src/bin/screenpipe-server.rs"
  
  
  [package.metadata.cargo-machete]
  ignored = ["url", "console-subscriber"]
  
  [target.'cfg(unix)'.dependencies]
  nix = { version = "0.29", features = ["signal"] }
  
  [target.'cfg(windows)'.dependencies]
  windows = { version = "0.58", features = [
      "Win32_System_Threading",
      "Win32_Foundation",
  ] }
  