[package]
name = "hex"
version = "3.3.0"
edition = "2024"
default-run = "hex"
license = "MIT"
repository = "https://github.com/anomalyco/hex"
[workspace]
members = ["crates/console", "crates/router"]
exclude = ["crates/capture", "crates/capture-core"]
[[test]]
name = "keyboard_layout"
harness = false
[build-dependencies]
cc = "1"
[target.'cfg(windows)'.build-dependencies]
embed-resource = "3"
[features]
onnx-benchmark = ["dep:transcribe-rs"]
[profile.release]
strip = true
[patch.crates-io]
transcribe-cpp = { git = "https://github.com/anomalyco/transcribe.cpp", rev = "2778ae4bf5ca5f394d129a39467f4ad9552dc34f" }
transcribe-cpp-sys = { git = "https://github.com/anomalyco/transcribe.cpp", rev = "2778ae4bf5ca5f394d129a39467f4ad9552dc34f" }
[dependencies]
clap = { version = "4.6.7", features = ["derive"] }
color-eyre = "0.6.5"
cpal = "0.18.2"
ctrlc = "3.5.2"
dirs = "7.0.0"
fs2 = "0.4.3"
getrandom = "0.4.3"
hound = "3.5.1"
libc = "0.2.189"
oxc_allocator = "0.156.0"
oxc_ast = "0.156.0"
oxc_ast_visit = "0.156.0"
oxc_parser = "0.156.0"
oxc_span = "0.156.0"
regex = "1.13.1"
rquickjs = { version = "0.14.0", default-features = false, features = ["std", "loader"] }
rodio = { version = "0.23.0", default-features = false, features = ["playback", "mp3"] }
rubato = "5.0.1"
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
serde_path_to_error = "0.1"
sha2 = "0.11.0"
tracing = "0.1.44"
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
transcribe-cpp = "=0.4.1"
transcribe-rs = { git = "https://github.com/cjpais/transcribe-rs", rev = "e37c66b6df43af51fde8dec34f98a07aaf09564c", features = ["onnx"], optional = true }
unicode-normalization = "0.1.25"
unicode-segmentation = "1.13.3"
url = "2.5.8"
ureq = { version = "3.4.2", default-features = false, features = ["native-tls"] }
[target.'cfg(target_os = "macos")'.dependencies]
capture-core = { path = "crates/capture-core" }
arboard = { version = "3.6.1", default-features = false }
block2 = "0.6.2"
core-graphics-types = "0.1.3"
crossterm = "0.29.0"
objc2 = "0.6.4"
objc2-app-kit = "0.3.2"
objc2-core-audio = "0.3.2"
objc2-core-audio-types = "0.3.2"
objc2-core-foundation = "0.3.2"
objc2-foundation = "0.3.2"
objc2-quartz-core = { version = "0.3.2", features = ["CALayer"] }
objc2-service-management = { version = "0.3.2", features = ["SMAppService"] }
ratatui = "0.30.2"
screencapturekit = { version = "=11.0.0", features = ["macos_15_0"] }
[target.'cfg(target_os = "linux")'.dependencies]
ctrlc = { version = "3.5.2", features = ["termination"] }
ed25519-dalek = { version = "2.2.0", default-features = false, features = ["std"] }
futures-util = { version = "0.3.34", default-features = false, features = ["alloc"] }
tokio = { version = "1.54.1", features = ["rt", "rt-multi-thread", "time"] }
transcribe-cpp = { version = "=0.4.1", features = ["vulkan"] }
wayland-client = "0.31.15"
wayland-protocols = { version = "0.32.13", features = ["client", "staging"] }
wayland-protocols-wlr = { version = "0.3.12", features = ["client"] }
x11-clipboard = "0.9.3"
x11rb = { version = "0.14.0", features = ["xkb", "xtest"] }
zbus = { version = "6.1.0", default-features = false, features = ["tokio", "proxy"] }
[target.'cfg(any(target_os = "linux", target_os = "macos", target_os = "windows"))'.dependencies]
rmcp = { version = "3.5.1", default-features = false, features = ["server", "macros", "transport-io"] }
tokio = { version = "1.53.1", features = ["rt", "io-std"] }
anyhow = "1.0.104"
rune-motion = { git = "https://github.com/anomalyco/rune.git", rev = "a138b97e654b8299b2a4cb518b8476b2b528c2c4" }
scrawl-capture = { path = "crates/capture", default-features = false, features = ["screen", "helper"] }
pollster = "1.0.1"
png = "0.18"
procwatch = { git = "https://github.com/anomalyco/rune.git", rev = "a138b97e654b8299b2a4cb518b8476b2b528c2c4" }
rune = { git = "https://github.com/anomalyco/rune.git", rev = "a138b97e654b8299b2a4cb518b8476b2b528c2c4", features = ["native-file-dialog", "macos-background-cursor"] }
rune-kit = { git = "https://github.com/anomalyco/rune.git", rev = "a138b97e654b8299b2a4cb518b8476b2b528c2c4" }
rune-theme-opencode = { git = "https://github.com/anomalyco/rune.git", rev = "a138b97e654b8299b2a4cb518b8476b2b528c2c4" }
wgpu = { version = "30", default-features = false, features = ["std", "parking_lot", "metal", "wgsl"] }
[target.'cfg(target_os = "windows")'.dependencies]
arboard = { version = "3.6.1", default-features = false, features = ["image-data"] }
winreg = "0.55.0"
windows-sys = { version = "0.61.2", features = [
"Win32_Foundation",
"Win32_Globalization",
"Win32_Graphics_Dwm",
"Win32_Graphics_Gdi",
"Win32_Networking_WinHttp",
"Win32_Networking_WinSock",
"Win32_Security",
"Win32_Storage_FileSystem",
"Win32_System_Console",
"Win32_System_DataExchange",
"Win32_System_JobObjects",
"Win32_System_LibraryLoader",
"Win32_System_Memory",
"Win32_System_Power",
"Win32_System_SystemInformation",
"Win32_System_Threading",
"Win32_UI_Input_KeyboardAndMouse",
"Win32_UI_Shell",
"Win32_UI_WindowsAndMessaging",
] }
windows = { version = "0.62.2", features = ["Media_Control", "Foundation", "Foundation_Collections", "Win32_Foundation", "Win32_Media_Audio", "Win32_Security", "Win32_System_Com", "Win32_System_Com_StructuredStorage", "Win32_System_Ole", "Win32_System_Threading", "Win32_System_Variant", "Win32_UI_Accessibility"] }
windows-core = "0.62.2"
windows-future = "0.3.2"
[target.'cfg(all(target_os = "windows", target_arch = "x86_64"))'.dependencies]
transcribe-cpp = { version = "=0.4.1", features = ["vulkan"] }
[workspace.lints.rust]
unsafe_op_in_unsafe_fn = "deny"
unused_must_use = "deny"
unsafe_code = "allow"
[workspace.lints.clippy]
await_holding_lock = "deny"
await_holding_refcell_ref = "deny"
dbg_macro = "deny"
disallowed_types = "deny"
todo = "warn"
disallowed_methods = "allow"
let_underscore_must_use = "allow"
undocumented_unsafe_blocks = "allow"
expect_used = "allow"
unwrap_used = "allow"
[lints]
workspace = true