[package] name = "zterm" version = "0.1.0" edition = "2024" [lib] name = "zterm" path = "src/lib.rs" [[bin]] name = "zterm" path = "src/main.rs" [dependencies] # Window and rendering winit = { version = "0.30", features = ["wayland", "x11"] } wgpu = "28" pollster = "0.4" # PTY handling rustix = { version = "0.38", features = ["termios", "pty", "process", "fs"] } # Async I/O polling = "3" # Error handling thiserror = "2" # Logging # No release_max_level set by default - use features to control: # - Default: all logs enabled (for development) # - --features production: disables all logs in release builds # - --features render_timing: enables timing instrumentation with info-level logging log = "0.4" env_logger = "0.11" # Utilities bytemuck = { version = "1", features = ["derive"] } libc = "0.2" bitflags = "2" # Font rasterization and shaping ab_glyph = "0.2" rustybuzz = "0.20" ttf-parser = "0.25" fontconfig = "0.10" fontconfig-sys = { package = "yeslogic-fontconfig-sys", version = "6.0" } # Color emoji support (FreeType + Cairo for color font rendering) freetype-rs = "0.38" cairo-rs = { version = "0.21", features = ["freetype"] } # Emoji detection (Unicode emoji database for O(1) lookup) emojis = "0.8" # Unicode character width (UAX#11 East Asian Width) unicode-width = "0.2" # Configuration serde = { version = "1", features = ["derive"] } serde_json = "1" bincode = "1" dirs = "6" notify = "7" # Shared memory for fast IPC memmap2 = "0.9" # Fast byte searching memchr = "2" # Fast HashMap (FxHash - what rustc uses) rustc-hash = "2" # Base64 decoding for OSC statusline base64 = "0.22" # Image processing (Kitty graphics protocol) image = { version = "0.25", default-features = false, features = ["png", "gif"] } flate2 = "1" # Video decoding for WebM support (video only, no audio) # Requires system FFmpeg libraries (ffmpeg 5.x - 8.x supported) ffmpeg-next = { version = "8.0", optional = true } [features] default = ["webm"] webm = ["ffmpeg-next"] # Enable timing instrumentation for performance debugging render_timing = [] # Production build: disable all logging for zero overhead production = ["log/release_max_level_off"]