[package] name = "ghostty-crash" version.workspace = true edition.workspace = true license.workspace = true description = "Local crash capture (Sentry envelope files), port of ghostty/src/crash" [features] # Mirrors upstream's `-Dsentry` build option (default off on Linux): when # disabled `init()` is a no-op. `install()` always works (used by tests). sentry = [] [dependencies] ghostty-os.workspace = true log = "0.4.34" serde_json = { version = "1", features = ["preserve_order"] } thiserror = "2.0.21" [target.'cfg(unix)'.dependencies] libc = "0.2" [target.'cfg(target_vendor = "apple")'.dependencies] mach2 = "0.6" [target.'cfg(any(target_os = "linux", target_os = "macos", windows))'.dependencies] minidump-writer = "0.13.0" [target.'cfg(windows)'.dependencies] windows-sys = { version = "0.61", features = [ "Win32_Foundation", "Win32_Security", "Win32_System_Diagnostics_Debug", "Win32_System_Kernel", "Win32_System_Threading", ] } [dev-dependencies] minidump = "0.27.0" tempfile = "3.27.0" # The fatal-signal handler needs sigaction/sigaltstack/raw syscalls. Unsafe is # denied crate-wide and only allowed in `signal.rs` with SAFETY comments. [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"