mirror of
https://github.com/hanzoai/desktop.git
synced 2026-10-30 14:58:42 +00:00
137 lines
5.7 KiB
TOML
137 lines
5.7 KiB
TOML
[package]
|
|
name = "hanzo-desktop"
|
|
version = "0.0.0"
|
|
description = "A first class Desktop application to interact with Hanzo Node"
|
|
authors = ["[email protected]"]
|
|
license = ""
|
|
repository = ""
|
|
edition = "2021"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2.6", features = [] }
|
|
|
|
[dependencies]
|
|
tauri = { version = "2.11", features = [ "macos-private-api", "tray-icon", "image-png", "devtools"] }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
# fix this dependency later on
|
|
reqwest = { version = "0.11", features = ["json", "stream"] }
|
|
lazy_static = "1.4.0"
|
|
tokio = { version = "1.36.0", features = ["macros", "rt-multi-thread", "rt", "net", "sync", "io-util"] }
|
|
chrono = "0.4.38"
|
|
futures-util = "0.3"
|
|
regex = "1.10.4"
|
|
once_cell = "1.19.0"
|
|
wgpu = "0.20.0"
|
|
sysinfo = "0.30.12"
|
|
ed25519-dalek = { version = "2.1.1", features = ["rand_core"] }
|
|
blake3 = "1.5.1"
|
|
# Phase-2 on-chain claim signer (mining/claim.rs) — lean secp256k1 stack (not
|
|
# alloy/ethers): BIP-39 mnemonic → BIP-44 (m/44'/60'/0'/0/0) → k256 ECDSA, with
|
|
# EIP-1559 RLP via `rlp` and keccak via `tiny-keccak`. Derives the SAME address
|
|
# as the frontend ethers wallet, so the mining wallet == the user's wallet.
|
|
coins-bip39 = { version = "0.8.7", default-features = false, features = ["english"] }
|
|
k256 = "0.13"
|
|
rlp = "0.5"
|
|
tiny-keccak = { version = "2.0", features = ["keccak"] }
|
|
opener = "0.7.2"
|
|
hex = "0.4.3"
|
|
base64 = "0.22.1"
|
|
time = "^0.3.36"
|
|
listeners = "0.2"
|
|
log = "0.4"
|
|
anyhow = "1.0.89"
|
|
uuid = { version = "1.10.0", features = ["v4"] }
|
|
kill_tree = { version = "0.2", features = ["tokio"] }
|
|
semver = "1.0"
|
|
sha2 = "0.10"
|
|
rand = "0.8"
|
|
keyring = "3.6"
|
|
|
|
# hanzo-machined client (UNIX-socket HTTP/JSON)
|
|
hyper = { version = "1.4", features = ["client", "http1"] }
|
|
http-body-util = "0.1"
|
|
bytes = "1"
|
|
thiserror = "1.0"
|
|
dirs = "6.0"
|
|
|
|
# Shared AI-chain mining crate (canonical hanzo core), pinned to latest.
|
|
# Same crate Zoo & Lux use so all three mine off the same network protocol.
|
|
hanzo-mining = "1.1.21"
|
|
|
|
tauri-plugin-global-shortcut = "2.3"
|
|
tauri-plugin-shell = "2.3"
|
|
tauri-plugin-single-instance = { version = "2.4", features = ["deep-link"] }
|
|
tauri-plugin-updater = "2.10"
|
|
tauri-plugin-dialog = "2.7"
|
|
tauri-plugin-fs = "2.5"
|
|
tauri-plugin-os = "2.3"
|
|
tauri-plugin-process = "2.3"
|
|
tauri-plugin-log = "2.8"
|
|
tauri-plugin-deep-link = "2.4"
|
|
tauri-plugin-opener = "2.5"
|
|
tauri-plugin-notification = "2.3"
|
|
tauri-plugin-http = "2.5"
|
|
|
|
# Phase 1 AI mining — native-Rust precompile (`mining/precompile.rs`), a pure
|
|
# port of lux/precompile/ai/ai_mining.go. No Go FFI / libluxprecompile shared
|
|
# library: the crypto is FIPS 204 ML-DSA (`fips204`) + BLAKE3 (`blake3`), so
|
|
# hanzo mines with no Go build chain and is identical on every platform.
|
|
fips204 = "0.4"
|
|
|
|
fix-path-env = { git = "https://github.com/tauri-apps/fix-path-env-rs" }
|
|
|
|
# --- Native Hanzo Engine (embedded, in-process) -----------------------------
|
|
# In-process LLM inference via the Hanzo Engine fork at ~/work/hanzo/engine
|
|
# (../../../../engine relative to this manifest). The engine workspace was
|
|
# rebranded mistralrs-* -> hanzo-*: `hanzo` is the high-level SDK, `hanzo-engine`
|
|
# is the core. Optional and OFF by default so the standard build stays light and
|
|
# does not require the engine repo checked out as a sibling. Enable with the
|
|
# `native-engine` feature plus a backend, e.g.
|
|
# cargo build --release --features "native-engine metal" (Apple Silicon)
|
|
# cargo build --release --features "native-engine cuda" (NVIDIA)
|
|
hanzo = { path = "../../../../engine/hanzo", optional = true }
|
|
hanzo-engine = { path = "../../../../engine/hanzo-engine", optional = true }
|
|
# The canonical server: the SAME crate `hanzo serve` builds on. The desktop's
|
|
# embedded engine reuses its `HanzoForServerBuilder` (state) +
|
|
# `HanzoServerRouterBuilder` (axum Router) instead of a hand-rolled server, so
|
|
# the node serves /v1/chat/completions, /v1/responses and /v1/messages
|
|
# identically. `default-features = false` drops the bundled swagger-ui (the
|
|
# inference routes don't need it; the builder gates docs behind that feature).
|
|
hanzo-server-core = { path = "../../../../engine/hanzo-server-core", optional = true, default-features = false }
|
|
axum = { version = "0.8", optional = true }
|
|
|
|
# SIGTERM the managed GPU-fleet / studio children so they mark the machine
|
|
# offline (fleet) and shut down cleanly, instead of a hard SIGKILL that waits
|
|
# out the heartbeat window. Already in the dependency tree.
|
|
[target.'cfg(unix)'.dependencies]
|
|
libc = "0.2"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|
|
|
|
[features]
|
|
default = ["machine"]
|
|
# this feature is used for production builds or when `devPath` points to the filesystem
|
|
# DO NOT REMOVE!!
|
|
custom-protocol = ["tauri/custom-protocol"]
|
|
|
|
# hanzo-machined integration (UNIX-socket HTTP/JSON client + Tauri commands).
|
|
# Brand-specific configs (zoo, liquidity) can opt out by disabling default-features.
|
|
machine = []
|
|
|
|
# Embed the native Hanzo Engine for in-process inference. This runs the canonical
|
|
# `hanzo-server-core` server (all protocols: chat/responses/messages) on
|
|
# 127.0.0.1:36900 plus a thin /v1/engine/* management surface and Tauri IPC
|
|
# commands. Pair with a backend feature.
|
|
native-engine = ["dep:hanzo", "dep:hanzo-engine", "dep:hanzo-server-core", "dep:axum"]
|
|
# GPU/CPU backends forwarded to the engine AND the server crate so their shared
|
|
# `hanzo-engine` resolves to one feature set. Weak deps (`pkg?/feat`) so selecting
|
|
# a backend never force-enables the engine unless `native-engine` is also on.
|
|
metal = ["hanzo?/metal", "hanzo-engine?/metal", "hanzo-server-core?/metal"]
|
|
cuda = ["hanzo?/cuda", "hanzo-engine?/cuda", "hanzo-server-core?/cuda"]
|
|
accelerate = ["hanzo-engine?/accelerate", "hanzo-server-core?/accelerate"]
|
|
flash-attn = ["hanzo?/flash-attn", "hanzo-server-core?/flash-attn"]
|