Files
jan/src-tauri/Cargo.toml

181 lines
5.8 KiB
TOML

[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 <service@jan.ai>"]
license = "MIT"
repository = "https://github.com/janhq/jan"
edition = "2021"
rust-version = "1.77.2"
resolver = "2"
default-run = "Jan"
[lib]
name = "app_lib"
crate-type = ["staticlib", "cdylib", "rlib"]
[[bin]]
name = "jan-cli"
path = "src/bin/jan-cli.rs"
required-features = ["cli"]
[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"]
mlx = ["dep:tauri-plugin-mlx"]
foundation-models = ["dep:tauri-plugin-foundation-models"]
desktop = [
"deep-link",
"hardware",
"mlx",
"foundation-models"
]
mobile = [
"tauri/protocol-asset",
"tauri/test",
"tauri/wry",
"dep:sqlx",
]
# foundation-models excluded from test-tauri - framework not available in CI
test-tauri = [
"tauri/wry",
"tauri/x11",
"tauri/protocol-asset",
"tauri/macos-private-api",
"tauri/tray-icon",
"tauri/test",
"deep-link",
"hardware",
"mlx",
]
cli = ["dep:env_logger", "dep:dialoguer", "dep:indicatif", "dep:console"]
[build-dependencies]
tauri-build = { version = "2.0.2", features = [] }
serde_json = "1.0"
[dependencies]
dirs = "6.0.0"
async-trait = "0.1"
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"
hex = "0.4"
hmac = "0.12"
hyper = { version = "0.14", features = ["server"] }
jan-utils = { path = "./utils" }
libloading = "0.8.7"
log = "0.4"
rand = "0.8"
rmcp = { version = "0.8.5", 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"
sha2 = "0.10"
tar = "0.4"
zip = "0.6"
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-mlx = { path = "./plugins/tauri-plugin-mlx", optional = true }
tauri-plugin-foundation-models = { path = "./plugins/tauri-plugin-foundation-models", optional = true }
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"] }
rfd = { version = "0.15.4", default-features = false, features = [
"tokio",
"xdg-portal",
"common-controls-v6",
] }
chrono = { version = "0.4", features = ["serde"] }
ed25519-dalek = { version = "2.1", features = ["rand_core"] }
futures = "0.3"
hostname = "0.4"
base64 = "0.22"
glob = "0.3"
clap = { version = "4", features = ["derive"] }
dialoguer = { version = "0.11", optional = true }
env_logger = { version = "0.11", optional = true }
indicatif = { version = "0.17", optional = true }
console = { version = "0.15", optional = true }
[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 = { version = "=0.30.1", features = ["signal", "process", "resource"] }
libc = "0.2"
[target.'cfg(target_os = "linux")'.dependencies]
zbus = { version = "5", default-features = false, features = ["tokio"] }
[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