[package] name = "ghostty-renderer" version.workspace = true edition.workspace = true license.workspace = true [dependencies] bytemuck = { version = "1.25.2", features = ["derive"] } crossbeam-channel = "0.5.17" ghostty-config.workspace = true ghostty-crash.workspace = true ghostty-os.workspace = true ghostty-datastruct.workspace = true ghostty-font.workspace = true ghostty-input.workspace = true ghostty-terminal.workspace = true ghostty-unicode.workspace = true ghostty-vt.workspace = true glow = "0.18.0" jpeg-decoder = { version = "0.3.2", default-features = false } khronos-egl = { version = "6.0.0", features = ["dynamic"] } log = "0.4.34" naga = { version = "30.0.1", features = ["glsl-in", "glsl-out", "msl-out", "wgsl-in"] } onig = "6.5.3" png = "0.18.1" thiserror = "2.0.21" [lints.rust] unsafe_code = "deny" [lints.clippy] pedantic = { level = "warn", priority = -1 } todo = "warn" unwrap_used = "warn" # Porting a low-level terminal emulator involves a lot of intentional # numeric casts and long state-machine functions; these pedantic lints are # noise for this codebase. 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" # The Metal graphics API (`renderer/Metal.zig`) and the CoreVideo display # link; compiled on macOS and iOS only. [target.'cfg(target_vendor = "apple")'.dependencies] block2 = "0.6.2" dispatch2 = "0.3.1" objc2 = "0.6.5" objc2-core-foundation = "0.3.2" objc2-core-graphics = "0.3.2" objc2-foundation = "0.3.2" objc2-io-surface = "0.3.2" objc2-metal = { version = "0.3.2", features = ["block2", "objc2-io-surface"] } objc2-quartz-core = "0.3.2" # CVDisplayLink does not exist on iOS. [target.'cfg(target_os = "macos")'.dependencies] objc2-core-video = "0.3.2"