[package] name = "ghostty-os" version.workspace = true edition.workspace = true license.workspace = true [dependencies] ghostty-zigfmt.workspace = true ghostty-vt.workspace = true log = "0.4.34" thiserror = "2.0.21" # Zig's wasm build only compiles `os/wasm.zig`; the POSIX / D-Bus / gettext # dependencies are unavailable on wasm32. [target.'cfg(not(any(target_arch = "wasm32", windows)))'.dependencies] gettext-rs = { version = "0.8.0", features = ["gettext-system"] } nix = { version = "0.31.3", features = ["user"] } rustix = { version = "1.1.5", features = ["fs", "process", "system", "pipe", "net", "time", "rand", "pty"] } zbus = "5.19.0" # Windows: ConPTY / pipes / process APIs (`os/windows.zig`). [target.'cfg(windows)'.dependencies] windows-sys = { version = "0.61", features = [ "Win32_Foundation", "Win32_Security", "Win32_Security_Cryptography", "Win32_Storage_FileSystem", "Win32_System_Console", "Win32_System_IO", "Win32_System_Pipes", "Win32_System_WindowsProgramming", "Win32_System_Threading", ] } # libxev's `IO_Uring.available()` probe (`os/xev.rs`). [target.'cfg(target_os = "linux")'.dependencies] io-uring = "0.7" [target.'cfg(unix)'.dependencies] libc = "0.2.190" [target.'cfg(target_vendor = "apple")'.dependencies] objc2 = "0.6.5" objc2-app-kit = "0.3.2" objc2-core-foundation = "0.3.2" objc2-foundation = "0.3.2" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] crossbeam-channel = "0.5.17" [features] # Mirrors Zig's `wasm_shared` build option (SharedArrayBuffer-backed memory). wasm-shared = [] # Same as `[workspace.lints]` except `unsafe_code` is denied instead of # forbidden: the wasm JS import blocks (`src/wasm`) need `unsafe`. [lints.rust] unsafe_code = "deny" [lints.clippy] pedantic = { level = "warn", priority = -1 } todo = "warn" unwrap_used = "warn" cast_possible_truncation = "allow" cast_possible_wrap = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" cast_lossless = "allow" module_name_repetitions = "allow" too_many_lines = "allow" missing_errors_doc = "allow" missing_panics_doc = "allow" similar_names = "allow" struct_excessive_bools = "allow" fn_params_excessive_bools = "allow" match_same_arms = "allow" unreadable_literal = "allow" many_single_char_names = "allow" doc_markdown = "allow" must_use_candidate = "allow" return_self_not_must_use = "allow" used_underscore_binding = "allow" large_stack_arrays = "allow" inline_always = "allow" [dev-dependencies] temp-env = "0.3.6"