[package] name = "coco" version = "0.9.1" description = "Search, connect, collaborate – all in one place." authors = ["INFINI Labs"] edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [lib] # The `_lib` suffix may seem redundant but it is necessary # to make the lib name unique and wouldn't conflict with the bin name. # This seems to be only an issue on Windows, see https://github.com/rust-lang/cargo/issues/8519 name = "coco_lib" crate-type = ["staticlib", "cdylib", "rlib"] [build-dependencies] tauri-build = { version = "2", features = ["default"] } cfg-if = "1.0.1" [features] default = ["desktop"] desktop = [] cargo-clippy = [] # If enabled, code that relies on pizza_engine will be activated. # # Only do this if: # 1. Pizza engine is listed in the `dependencies` section # # ```toml # [dependencies] # pizza-engine = { git = "ssh://git@github.com/infinilabs/pizza.git", features = ["query_string_parser", "persistence"] } # ``` # # 2. It is a private repo, you have access to it. # # So, for external contributors, do NOT enable this feature. # # Previously, We listed it in the dependencies and marked it optional, but cargo # would fetch all the dependencies regardless of wheterh they are optional or not, # so we removed it. # # https://github.com/rust-lang/cargo/issues/4544#issuecomment-1906902755 use_pizza_engine = [] [dependencies] pizza-common = { git = "https://github.com/infinilabs/pizza-common", branch = "main" } tauri = { version = "2", features = ["protocol-asset", "macos-private-api", "tray-icon", "image-ico", "image-png"] } tauri-plugin-shell = "2" serde = { version = "1", features = ["derive"] } # Need `arbitrary_precision` feature to support storing u128 # see: https://docs.rs/serde_json/latest/serde_json/struct.Number.html#method.from_u128 serde_json = { version = "1", features = ["arbitrary_precision", "preserve_order"] } tauri-plugin-http = "2" tauri-plugin-deep-link = "2.0.0" tauri-plugin-store = "2.2.0" tauri-plugin-os = "2" tauri-plugin-dialog = "2" tauri-plugin-fs = "2" tauri-plugin-process = "2" tauri-plugin-drag = "2" tauri-plugin-macos-permissions = "2" tauri-plugin-fs-pro = "2" tauri-plugin-screenshots = "2" applications = { git = "https://github.com/infinilabs/applications-rs", rev = "b5fac4034a40d42e72f727f1aa1cc1f19fe86653" } tokio-native-tls = "0.3" # For wss connections tokio = { version = "1", features = ["full"] } tokio-tungstenite = { version = "0.20", features = ["native-tls"] } hyper = { version = "0.14", features = ["client"] } reqwest = { version = "0.12", features = ["json", "multipart"] } futures = "0.3.31" ordered-float = { version = "4.6.0", default-features = false } lazy_static = "1.5.0" once_cell = "1.20.2" notify = "5.0" async-trait = "0.1.82" thiserror = "1.0.64" dirs = "5.0.1" hostname = "0.3" plist = "1.7" base64 = "0.13" walkdir = "2" log = "0.4" strsim = "0.10" futures-util = "0.3.31" http = "1.1.0" tungstenite = "0.24.0" tokio-util = "0.7.14" tauri-plugin-windows-version = "2" meval = { git = "https://github.com/infinilabs/meval-rs" } chinese-number = "0.7" num2words = "1" tauri-plugin-log = "2" chrono = "0.4.41" serde_plain = "1.0.2" derive_more = { version = "2.0.1", features = ["display"] } anyhow = "1.0.98" function_name = "0.3.0" regex = "1.11.1" borrowme = "0.0.15" tauri-plugin-opener = "2" async-recursion = "1.1.1" zip = "4.0.0" url = "2.5.2" camino = "1.1.10" tokio-stream = { version = "0.1.17", features = ["io-util"] } sysinfo = "0.35.2" indexmap = { version = "2.10.0", features = ["serde"] } strum = { version = "0.27.2", features = ["derive"] } sys-locale = "0.3.2" tauri-plugin-prevent-default = "1" oneshot = "0.1.11" bitflags = "2.9.3" cfg-if = "1.0.1" dunce = "1.0.5" urlencoding = "2.1.3" scraper = "0.17" toml = "0.8" path-clean = "1.0.1" actix-files = "0.6.8" actix-web = "4.11.0" tauri-plugin-clipboard-manager = "2" tauri-plugin-zustand = "1" snafu = "0.8.9" [dev-dependencies] tempfile = "3.23.0" [target."cfg(target_os = \"macos\")".dependencies] tauri-nspanel = { git = "https://github.com/ahkohd/tauri-nspanel", branch = "v2.1" } objc2-app-kit = { version = "0.3.1", features = ["NSWindow"] } objc2 = "0.6.2" objc2-core-foundation = {version = "0.3.1", features = ["CFString", "CFCGTypes", "CFArray"] } objc2-application-services = { version = "0.3.1", features = ["HIServices"] } objc2-core-graphics = { version = "=0.3.1", features = ["CGEvent"] } # macOS-only: used by selection_monitor.rs to check AX trust/prompt macos-accessibility-client = "0.0.1" [target."cfg(target_os = \"linux\")".dependencies] gio = "0.21.2" glib = "0.21.2" tracker-rs = "0.7" which = "8.0.0" configparser = "3.1.0" [target."cfg(any(target_os = \"macos\", windows, target_os = \"linux\"))".dependencies] tauri-plugin-single-instance = { version = "2.0.0", features = ["deep-link"] } serde = { version = "1.0.219", features = ["derive"], optional = true } [profile.dev] incremental = true # Compile your binary in smaller steps. [profile.release] codegen-units = 1 # Allows LLVM to perform better optimization. lto = true # Enables link-time-optimizations. opt-level = "s" # Prioritizes small binary size. Use `3` if you prefer speed. panic = "abort" # Higher performance by disabling panic handlers. strip = true # Ensures debug symbols are removed. [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] tauri-plugin-autostart = "^2.2" tauri-plugin-global-shortcut = "2" tauri-plugin-updater = { git = "https://github.com/infinilabs/plugins-workspace", branch = "v2" } # This should be compatible with the semver used by `tauri-plugin-updater` semver = { version = "1", features = ["serde"] } [target."cfg(target_os = \"windows\")".dependencies] enigo="0.3" windows = { version = "0.61", features = ["Win32_Foundation", "Win32_System_Com", "Win32_System_Ole", "Win32_System_Search", "Win32_UI_Shell_PropertiesSystem", "Win32_Data"] } windows-sys = { version = "0.61", features = ["Win32", "Win32_System", "Win32_System_Com"] } [target."cfg(target_os = \"windows\")".build-dependencies] bindgen = "0.72.1"