Files
ghostty-rs/Cargo.toml
T
ddidderr 465a85b6d5 fix: URL opener and +show-face output match Ghostty, register fixes
Resolves the parity items of docs/rewrite/notes/review-rv15-codex.md
(final-Z18.md):
- os::open inherits stdin like Zig's Child.init, strips LD_LIBRARY_PATH
  only in Snap builds (new `snap` cargo feature, off by default, like
  Zig's snap build option) and bounds output collection to 50 KiB per
  stream (StdoutStreamTooLong/StderrStreamTooLong).
- +show-face writes diagnostics and lookup lines in the exact fragments
  Zig's formatter produces, so buffer drains happen at the same byte
  positions (0 diffs vs /usr/bin/ghostty over 0-44 bad options for
  three codepoints); its tests no longer parse the test runner's argv.
- DEVIANT_FIXES.md: five entries reworded and four removed that were no
  longer deviations (verified against code and oracle).

Test Plan:
- cargo test -p ghostty-os open; cargo test -p ghostty-cli show_face
2026-10-12 15:37:24 +02:00

129 lines
3.6 KiB
TOML

[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"]
# Mirrors upstream's `-Dsnap` build option (off by default).
snap = ["ghostty-os/snap"]
[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"