[package] name = "ghostty-rs" version = "0.1.0" edition = "2024" description = "A Rust rewrite of the Ghostty terminal emulator" [[bin]] name = "ghostty" path = "src/main.rs" [features] # Mirrors upstream's `-Dsentry` build option (off by default on Linux): # enables the local crash-report handler (`ghostty-crash`). sentry = ["ghostty-crash/sentry"] [dependencies] ghostty-core.workspace = true ghostty-config.workspace = true ghostty-apprt-gtk.workspace = true ghostty-apprt.workspace = true ghostty-cli.workspace = true ghostty-crash.workspace = true ghostty-os.workspace = true log = "0.4" [dev-dependencies] rustix = { version = "1", features = ["process"] } serde_json = "1" tempfile = "3" [lints] workspace = true [workspace] resolver = "3" members = [".", "crates/*", "tools/difftest"] # The upstream Ghostty version this rewrite tracks (Zig: `build.zig.zon` # `.version`); consumed by `crates/ghostty-cli/build.rs`. [workspace.metadata.ghostty] app-version = "1.3.1" [workspace.package] version = "0.1.0" edition = "2024" license = "MIT" [workspace.dependencies] ghostty-vt = { path = "crates/ghostty-vt" } ghostty-unicode = { path = "crates/ghostty-unicode" } ghostty-terminal = { path = "crates/ghostty-terminal" } ghostty-input = { path = "crates/ghostty-input" } ghostty-helpgen = { path = "crates/ghostty-helpgen" } ghostty-config = { path = "crates/ghostty-config" } ghostty-font = { path = "crates/ghostty-font" } ghostty-renderer = { path = "crates/ghostty-renderer" } ghostty-termio = { path = "crates/ghostty-termio" } ghostty-os = { path = "crates/ghostty-os" } ghostty-zigfmt = { path = "crates/ghostty-zigfmt" } ghostty-onig = { path = "crates/ghostty-onig" } ghostty-datastruct = { path = "crates/ghostty-datastruct" } ghostty-core = { path = "crates/ghostty-core" } ghostty-apprt-gtk = { path = "crates/ghostty-apprt-gtk" } ghostty-apprt = { path = "crates/ghostty-apprt" } ghostty-cli = { path = "crates/ghostty-cli" } ghostty-build-info = { path = "crates/ghostty-build-info" } ghostty-crash = { path = "crates/ghostty-crash" } ghostty-bench = { path = "crates/ghostty-bench" } ghostty-inspector = { path = "crates/ghostty-inspector" } ghostty-vt-capi = { path = "crates/ghostty-vt-capi" } ghostty-wasm = { path = "crates/ghostty-wasm" } ghostty-lib = { path = "crates/ghostty-lib" } [workspace.lints.rust] unsafe_code = "forbid" [workspace.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" [profile.release] debug = true strip = false debug-assertions = true overflow-checks = true lto = false panic = "unwind" incremental = true [profile.production] inherits = "release" debug = false strip = true debug-assertions = false overflow-checks = false lto = true incremental = false codegen-units = 1 [build-dependencies] embed-resource = "3.0.12"