[package] name = "Jan" version = "0.6.599" description = "Use offline LLMs with your own data. Run open source models like Llama2 or Falcon on your internal computers/servers." authors = ["Jan "] license = "MIT" repository = "https://github.com/janhq/jan" edition = "2021" rust-version = "1.77.2" resolver = "2" [lib] name = "app_lib" crate-type = ["staticlib", "cdylib", "rlib"] [features] default = [ "tauri/wry", "tauri/common-controls-v6", "tauri/x11", "tauri/protocol-asset", "tauri/macos-private-api", "tauri/tray-icon", "tauri/test", "tauri/custom-protocol", "desktop", ] hardware = ["dep:tauri-plugin-hardware"] deep-link = ["dep:tauri-plugin-deep-link"] desktop = [ "deep-link", "hardware" ] mobile = [ "tauri/protocol-asset", "tauri/test", "tauri/wry", "dep:sqlx", ] test-tauri = [ "tauri/wry", "tauri/x11", "tauri/protocol-asset", "tauri/macos-private-api", "tauri/tray-icon", "tauri/test", "desktop", ] [build-dependencies] tauri-build = { version = "2.0.2", features = [] } [dependencies] dirs = "6.0.0" env = "1.0.1" fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs" } flate2 = "1.0" futures-util = "0.3.31" hyper = { version = "0.14", features = ["server"] } jan-utils = { path = "./utils" } libloading = "0.8.7" log = "0.4" rmcp = { version = "0.6.0", features = [ "client", "transport-sse-client", "transport-sse-client-reqwest", "transport-streamable-http-client", "transport-streamable-http-client-reqwest", "transport-child-process", "tower", "reqwest", ] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" serde_yaml = "0.9.34" tar = "0.4" zip = "0.6" tauri-plugin-dialog = "2.2.1" tauri-plugin-deep-link = { version = "2", optional = true } tauri-plugin-hardware = { path = "./plugins/tauri-plugin-hardware", optional = true } tauri-plugin-llamacpp = { path = "./plugins/tauri-plugin-llamacpp" } tauri-plugin-vector-db = { path = "./plugins/tauri-plugin-vector-db" } tauri-plugin-rag = { path = "./plugins/tauri-plugin-rag" } tauri-plugin-http = { version = "2", features = ["unsafe-headers"] } tauri-plugin-log = "2.0.0-rc" tauri-plugin-opener = "2.2.7" tauri-plugin-os = "2.2.1" tauri-plugin-shell = "2.2.0" tauri-plugin-store = "2" sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite"], optional = true } thiserror = "2.0.12" tokio = { version = "1", features = ["full"] } tokio-util = "0.7.14" url = "2.5" uuid = { version = "1.7", features = ["v4"] } [dependencies.tauri] version = "2.8.5" default-features = false features = ["protocol-asset", "macos-private-api", "test"] [target.'cfg(windows)'.dev-dependencies] tempfile = "3.20.0" [target.'cfg(unix)'.dependencies] nix = "=0.30.1" [target.'cfg(windows)'.dependencies] libc = "0.2.172" windows-sys = { version = "0.60.2", features = ["Win32_Storage_FileSystem"] } [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] reqwest = { version = "0.11", features = ["json", "blocking", "stream", "native-tls-vendored"] } tauri-plugin-updater = "2" once_cell = "1.18" tauri-plugin-single-instance = { version = "2", features = ["deep-link"] } [target.'cfg(any(target_os = "android", target_os = "ios"))'.dependencies] reqwest = { version = "0.11", features = ["json", "blocking", "stream", "rustls-tls"], default-features = false } tauri-plugin-dialog = { version = "2.2.1", default-features = false } tauri-plugin-http = { version = "2", default-features = false } tauri-plugin-log = { version = "2.0.0-rc", default-features = false } tauri-plugin-opener = { version = "2.2.7", default-features = false } tauri-plugin-os = { version = "2.2.1", default-features = false } tauri-plugin-shell = { version = "2.2.0", default-features = false } tauri-plugin-store = { version = "2", default-features = false } # Release profile optimizations for minimal binary size [profile.release] opt-level = "z" # Optimize for size lto = "fat" # Aggressive Link Time Optimization strip = "symbols" # Strip debug symbols for smaller binary codegen-units = 1 # Reduce parallel codegen for better optimization panic = "abort" # Don't unwind on panic, saves space overflow-checks = false # Disable overflow checks for size debug = false # No debug info debug-assertions = false # No debug assertions incremental = false # Disable incremental compilation for release rpath = false # Don't include rpath