Files
zterm/Cargo.toml
T
2025-12-22 00:22:55 +01:00

93 lines
2.1 KiB
TOML

[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"]