[workspace]members = [ "crates/*", "app",]resolver = "2" # Include all members except serve-wasm (since it's a helper helper for serving# wasm binaries and not something we want to regularly compile or run# tests against) and integration (since it is only used for testing).default-members = [ "app", "crates/channel_versions", "crates/command", "crates/editor", "crates/graphql", "crates/markdown_parser", "crates/sum_tree", "crates/warpui", "crates/warp_completer", "crates/warp_terminal", "crates/warp_util",] [workspace.package]authors = ["Warp Team <dev@warp.dev>"]license = "AGPL-3.0-only"publish = false [workspace.dependencies]# Local workspace crates. This lets us reference them in other crates without specifying a path.ai = { path = "crates/ai" }ai_types = { path = "crates/ai_types" }app-installation-detection = { path = "crates/app-installation-detection" }asset_cache = { path = "crates/asset_cache" }asset_macro = { path = "crates/asset_macro" }build_cache = { path = "crates/build_cache" }channel_versions = { path = "crates/channel_versions", default-features = false }command = { path = "crates/command" }cloud_objects = { path = "crates/cloud_objects" }cloud_object_client = { path = "crates/cloud_object_client" }cloud_object_persistence = { path = "crates/cloud_object_persistence" }cloud_object_models = { path = "crates/cloud_object_models" }computer_use = { path = "crates/computer_use" }field_mask = { path = "crates/field_mask" }firebase = { path = "crates/firebase" }fuzzy_match = { path = "crates/fuzzy_match" }handlebars = { path = "crates/handlebars" }http_client = { path = "crates/http_client" }http_server = { path = "crates/http_server" }input_classifier = { path = "crates/input_classifier" }integration = { path = "crates/integration" }ipc = { path = "crates/ipc" }ipynb_parser = { path = "crates/ipynb_parser" }jsonrpc = { path = "crates/jsonrpc" }languages = { path = "crates/languages" }local_control = { path = "crates/local_control" }lsp = { path = "crates/lsp" }markdown_parser = { path = "crates/markdown_parser" }mcp = { path = "crates/mcp" }natural_language_detection = { path = "crates/natural_language_detection" }node_runtime = { path = "crates/node_runtime" }onboarding = { path = "crates/onboarding" }persistence = { path = "crates/persistence" }prevent_sleep = { path = "crates/prevent_sleep" }regex_dfas = { path = "crates/regex_dfas" }remote_server = { path = "crates/remote_server" }repo_metadata = { path = "crates/repo_metadata" }secret_redaction = { path = "crates/secret_redaction" }settings = { path = "crates/settings" }settings_value = { path = "crates/settings_value", default-features = false }settings_value_derive = { path = "crates/settings_value_derive" }simple_logger = { path = "crates/simple_logger" }string-offset = { path = "crates/string-offset" }sum_tree = { path = "crates/sum_tree" }syntax_tree = { path = "crates/syntax_tree" }ui_components = { path = "crates/ui_components" }vim = { path = "crates/vim" }virtual-fs = { path = "crates/virtual_fs" }voice_input = { path = "crates/voice_input" }warp = { path = "app" }warp_assets = { path = "crates/warp_assets" }warp_channel_config = { path = "crates/warp_channel_config" }warp_cli = { path = "crates/warp_cli" }warp_completer = { path = "crates/warp_completer" }warp_core = { path = "crates/warp_core" }warp_editor = { path = "crates/editor" }warp_errors = { path = "crates/warp_errors" }warp_features = { path = "crates/warp_features" }warp_files = { path = "crates/warp_files" }warp_graphql = { path = "crates/graphql" }warp_graphql_schema = { path = "crates/warp_graphql_schema" }warp_isolation_platform = { path = "crates/isolation_platform" }warp_logging = { path = "crates/warp_logging" }warp_managed_secrets = { path = "crates/managed_secrets" }warp_multi_agent_client = { path = "crates/warp_multi_agent_client" }warp_ripgrep = { path = "crates/warp_ripgrep" }warp_search_core = { path = "crates/warp_search_core" }warp_server_auth = { path = "crates/warp_server_auth" }warp_server_client = { path = "crates/warp_server_client" }warp_terminal = { path = "crates/warp_terminal" }warp_util = { path = "crates/warp_util" }warp_web_event_bus = { path = "crates/warp_web_event_bus" }warpui = { path = "crates/warpui" }warpui_core = { path = "crates/warpui_core" }warpui_extras = { path = "crates/warpui_extras", default-features = false }watcher = { path = "crates/watcher" }websocket = { path = "crates/websocket" } # Workspace-level dependencies used by multiple crates. Prefer adding dependencies# here to copying-and-pasting versions.axum = "0.8.4"anyhow = "1.0"arboard = { version = "3.6.1", default-features = false }arrayvec = "0.7.4"async-broadcast = "0.7.2"ashpd = { version = "0.11", default-features = false, features = ["async-std"] }async-channel = "2.3.1"async-compat = "0.2.5"async-io = "2.4.0"async-process = "2.3.0"async-stream = "0.3.5"async-task = "4.2.0"async-trait = "0.1.89"async-fs = "2.1.2"backtrace = "0.3.76"base64 = "0.22"bincode = "1.3.3"bitflags = { version = "2.4.0", features = ["serde"] }bitflags-serde-legacy = "0.1.1"block = "0.1.6"blocking = "1.6.2"bounded-vec-deque = "0.1"bytemuck = { version = "1.13.1" }bytes = { version = "1.11.1", features = ["serde"] }command-corrections = { git = "https://github.com/warpdotdev/command-corrections.git", rev = "eae08c8c51d9bc9741fcb17eef2c21f696aebbeb" }core-foundation = "0.10.1"concat-idents = "1.1.4"cfg_aliases = "0.2.1"cfg-if = "1.0.0"chrono = { version = "0.4.38", features = ["serde"] }clap = { version = "4.5", features = ["derive"] }cocoa = "=0.26.0"ctrlc = "3.4.7"crc = "3.4.0"cynic = { version = "3" }cynic-codegen = { version = "3", features = ["rkyv"] }dashmap = "6.1.0"derive_more = "0.99.17"diesel = { version = "2.3.8", default-features = false }directories = "6.0"dunce = "1.0.1"enum-iterator = "1.1.3"env_logger = "0.10.0"event-listener = "5.4.0"float-cmp = "0.9.0"font-kit = { git = "https://github.com/warpdotdev/font-kit", rev = "a04b225ecb639bb850f21d05212cfdc7465000f3", default-features = false, features = [ "source",] }futures = { version = "0.3", features = ["executor", "thread-pool"] }futures-lite = "1.13.0"futures-util = { version = "0.3", default-features = false }fs4 = { version = "0.13.1", features = ["sync"] }get-size = { version = "0.1.4", features = ["derive"] }globset = "0.4.18"gloo = { version = "0.11.0", default-features = false, features = [ "events", "futures", "utils",] }graphql-ws-client = { version = "0.11.1", default-features = false }hashbrown = "0.17.1"hex = "0.4.3"# This matches the version of hyper used by reqwest.hyper = "1.6.0"html5ever = "0.35.0"http = "1.1.0"humantime = "2.1.0"image = { version = "0.25.9", default-features = false, features = [ "rayon", "jpeg", "png", "gif", "webp",] }instant = { version = "0.1.12", features = ["wasm-bindgen"] }iso8601-duration = { version = "0.2.0", features = ["chrono", "serde"] }itertools = "0.14.0"jaq-json = { version = "2.0", features = ["serde"] }# Disabling the default `formats` feature is intended to avoid pulling in# CBOR/TOML/XML/YAML support, but `jaq-all` currently depends on `jaq-fmts`# with its default features enabled, which re-enables all those parsers transitively.# The long-term fix is https://github.com/01mf02/jaq/issues/431.jaq-all = { version = "0.1", default-features = false }jsonschema = { version = "0.45", default-features = false }lasso = { version = "0.7.3", features = ["multi-threaded"] }lazy_static = "1.4.0"libc = "0.2.81"libtest-mimic = "0.8.2"line-ending = "1.4.0"log = { version = "0.4", features = ["serde", "std"] }mermaid_to_svg = { git = "https://github.com/warpdotdev/mermaid-to-svg.git", rev = "8d3f789c2eb49335d7bf247a06bb649f59b6d4ed" }mime_guess = "2.0"minimp4 = "0.1.2"nix = { version = "0.26.4", default-features = false, features = ["signal"] }notify-debouncer-full = { git = "https://github.com/warpdotdev/notify", rev = "91b719849bc04ef251bcb2cc61076b099204e970" }nom = "7.1.1"num-traits = "0.2"oauth2 = { version = "5.0.0", default-features = false }opentelemetry = { version = "0.32.0", default-features = false, features = ["trace"] }opentelemetry-http = "0.32.0"opentelemetry-otlp = { version = "0.32.0", default-features = false, features = [ "gzip-http", "http-proto", "trace", "zstd-http",] }opentelemetry_sdk = { version = "0.32.1", default-features = false, features = ["trace"] }openh264 = "0.8"static_assertions = "1.1.0"url = "2.5.4"urlocator = "0.1.4"mockall = "0.13.1"objc = "0.2"objc2 = "0.6.3"objc2-app-kit = { version = "0.3.2", default-features = false, features = ["NSScreen", "objc2-core-foundation"] }objc2-av-foundation = { version = "0.3.2", default-features = false }objc2-core-foundation = "0.3.2"objc2-core-graphics = "0.3.2"objc2-foundation = { version = "0.3", default-features = false, features = ["std"] }objc2-metal = { version = "0.3.2", default-features = false }objc2-quartz-core = { version = "0.3.2", default-features = false }dispatch2 = { version = "0.3.0", default-features = false, features = ["std", "block2"] }once_cell = "1.20.2"ordered-float = { version = "3.0.0", features = ["serde"] }parking_lot = "0.12.1"pathfinder_color = "0.5"pathfinder_geometry = "0.5.1"pin-project = "1.0.10"pprof = "0.15.0"prost = "0.14.3"prost-build = "0.14.3"prost-reflect = "0.16.3"prost-types = "0.14.3"qrcode = { version = "0.14.1", default-features = false }rand = "0.8.6"rangemap = "1.3.0"reqwest = { version = "0.13", features = [ "blocking", "brotli", "gzip", "form", "json", "multipart", "query", "stream",] }reqwest-eventsource = { package = "aha-reqwest-eventsource", version = "0.1" }resvg = "0.47.0"rust-embed = { version = "8.7.0", features = ["include-exclude"] }rustc-hash = "2.1.1"rustls = "0.23.39"schemars = { version = "1", features = ["chrono04"] }sentry = { version = "0.47.0", default-features = false, features = [ "anyhow", "backtrace", "contexts", "debug-images", "panic", "release-health", "reqwest", "rustls",] }sentry-log = "0.47.0"serde = { version = "1.0", features = ["derive", "rc"] }serde_bytes = "0.11"serde-bytes-repr = "0.3"serde_json = { version = "1.0", features = ["raw_value"] }serde_urlencoded = "0.7"serde_with = "^3.21"serde_yaml = "0.8"session-sharing-protocol = { git = "https://github.com/warpdotdev/session-sharing-protocol.git", rev = "fcd0fea35ab9f782043c8ec74fd81bce187ded9f" }similar = { version = "2.7", features = ["inline"] }simplelog = "0.12.2"smallvec = "1.6.1"smol_str = "0.2.2"strsim = "0.11"strum = "0.27"strum_macros = "0.27"tempfile = "3.8.0"thiserror = "2.0.17"tokio = "1.47.1"tokio-util = { version = "0.7", features = ["io"] }toml_edit = "0.25.5"tower = "0.5.2"tower-http = "0.6.6"tracing = "0.1.40"tracing-futures = "0.2.5"tracing-opentelemetry = { version = "0.33.0", default-features = false }tracing-subscriber = { version = "0.3.22", default-features = false, features = [ "registry", "std",] }arborium = { version = "2", default-features = false, features = [ "lang-rust", "lang-go", "lang-yaml", "lang-python", "lang-javascript", "lang-typescript", "lang-tsx", "lang-java", "lang-cpp", "lang-bash", "lang-c-sharp", "lang-html", "lang-css", "lang-c", "lang-json", "lang-jq", "lang-hcl", "lang-lua", "lang-nix", "lang-ruby", "lang-php", "lang-toml", "lang-swift", "lang-kotlin", "lang-scala", "lang-powershell", "lang-elixir", "lang-sql", "lang-starlark", "lang-objc", "lang-xml", "lang-vue", "lang-dockerfile", "lang-markdown",] }unicode-general-category = "1.1.0"unicode-linebreak = "0.1.5"unicode-segmentation = "1.11.0"unicode-width = "0.1.12"uuid = { version = "1.1.2", features = ["v4", "v5", "serde", "js"] }vec1 = { version = "1.8.0", features = ["serde"] }version-compare = "0.1"vte = { git = "https://github.com/warpdotdev/vte.git", rev = "4b399c87b63ba88f45709edaa6383fc519f6c900", default-features = false }walkdir = "2"warp-workflows = { git = "https://github.com/warpdotdev/workflows", rev = "793a98ddda6ef19682aed66364faebd2829f0e01" }warp_multi_agent_api = { git = "https://github.com/warpdotdev/warp-proto-apis.git", rev = "7b638a3bce15b6159116c25caa1dda62cf004b0e" }wasm-bindgen = "0.2.89"wasm-bindgen-futures = "0.4.42"web-sys = { version = "0.3.69", features = [ "Blob", "Clipboard", "ClipboardEvent", "ClipboardItem", "CompositionEvent", "Document", "DataTransfer", "Event", "HtmlCanvasElement", "HtmlInputElement", "InputEvent", "Navigator", "MediaQueryList", "Window", "Notification", "NotificationPermission",] }# Disable default features to disable support for WebGPU, which does not yet# have wide browser support. We enable all other default feature of wgpu,# though.wgpu = { version = "30.0.0", default-features = false, features = [ "dx12", "gles", "metal", "parking_lot", "std", "vulkan", "wgsl",] }zbus = "5.9.0"memchr = "2"memo-map = "0.3.1"async-recursion = "1.0.0"getset = "0.1.1"regex = "1.11.1"regex-automata = "0.4.6"dirs = "6.0.0"rayon = "1.10.0"sha2 = "0.10"shellexpand = "3.1.1"warp-command-signatures = { git = "https://github.com/warpdotdev/command-signatures.git", rev = "48fd7aa5b7b4d99f5db57d1c5a25c47c05567fcf", default-features = false }winit = { git = "https://github.com/warpdotdev/winit.git", rev = "14db95a686387211d57cf2afd1d908b2d82a20fe" }x11rb = "0.13.0"mockito = "1.7.0"sysinfo = { version = "0.37.0", default-features = false, features = [ "system", "multithread",] }windows = { version = "0.62.2", features = [ "Win32", "Win32_System", "Win32_System_Kernel", "Win32_System_Threading", "Wdk_System", "Wdk_System_SystemServices", "Win32_System_Com", "Win32_System_SecurityCenter", "Win32_System_SystemInformation", "Win32_System_Console",] }windows-core = { version = "0.62.2" }windows-registry = { version = "0.2.0" }windows-result = { version = "0.2.0" }winreg = "0.55.0"typed-path = "0.10.0"streaming-iterator = "0.1.0"derivative = "2.2.0"parquet = { version = "55.0.0", features = ["arrow"] }rmcp = { version = "1.6" } [profile.release]# Use line-tables-only (debug = 1) rather than full debuginfo (debug = 2 /# `true`). Line tables are enough to symbolicate panics and Sentry stack# traces with file/line info, but they omit the per-variable/type DWARF that# dominates DWARF size. Dropping the type info significantly reduces rustc's# peak memory during ThinLTO + codegen (which was OOM-killing release builds# on CI), at the cost of not being able to inspect locals/types when# attaching a debugger to a release binary.debug = 1# Force the rust compiler to create a dSYM. Starting in 1.53 the default on MacOS is "unpacked".split-debuginfo = "packed" [profile.dev]# Use line-tables-only to speed up dev builds. Change to `debug = true` if you# need full debuginfo for step-through debugging (gdb/lldb).debug = "line-tables-only"# loads debuginfo without needing to run dsymutil, leave the .o object files# in the build output directory instead of deleting them, and skips the step of running dsymutil.# Rust's backtrace support is smart enough to know how to find these .o files.# This should work as long as you don't need to move the binary to a different# location while retaining the debug information.split-debuginfo = "unpacked" [profile.dev.package]# Improve the performance of core terminal logic.warp_terminal.opt-level = 3# Minimize the runtime overhead of CPU profiling at the cost of a small# increase in compile time for this crate.backtrace.opt-level = 3# Minimize the runtime overhead of CPU profiling at the cost of a small# increase in compile time for this crate.pprof.opt-level = 3# Ensure jemalloc is optimized for performance.tikv-jemallocator.opt-level = 3tikv-jemalloc-sys.opt-level = 3jemalloc_pprof.opt-level = 3pprof_util.opt-level = 3# Vastly improve runtime performance of some font and text layout logic# at the cost of a small increase in compile time for this crate.ttf-parser.opt-level = 3# Improve the performance of Agent Mode diff application, particularly in tests.strsim.opt-level = 3# Improve performance of SSE stream parsing.eventsource-stream.opt-level = 3memchr.opt-level = 3nom.opt-level = 3# Improve performance of core runtime components slightly.tokio.opt-level = 1rayon-core.opt-level = 1# Improve performance of image processing for debug builds.fdeflate.opt-level = 3image.opt-level = 3png.opt-level = 3miniz_oxide.opt-level = 3 # A profile that behaves like release but enables ThinLTO, which should produce# binaries with better runtime performance with little build-time overhead.[profile.release-lto]inherits = "release"lto = "thin" # A shorthand profile for `release-lto`.# Windows enforces that any path is a maximum of 255 characters and# the length of this profile is sufficiently long that it can cause# compiler errors. We use a shorthand to get around these issues.[profile.rlto]inherits = "release-lto" # A custom release-like profile that forces debug assertions on.[profile.release-lto-debug_assertions]inherits = "release-lto"debug-assertions = true # A shorthand profile for `release-lto-debug_assertions`.# Windows enforces that any path is a maximum of 255 characters and# the length of this profile is sufficiently long that it can cause# compiler errors. We use a shorthand to get around these issues.Lines 1–500 of 586. Load more
[workspace] members = [ "crates/*", "app", ] resolver = "2" # Include all members except serve-wasm (since it's a helper helper for serving # wasm binaries and not something we want to regularly compile or run # tests against) and integration (since it is only used for testing). default-members = [ "app", "crates/channel_versions", "crates/command", "crates/editor", "crates/graphql", "crates/markdown_parser", "crates/sum_tree", "crates/warpui", "crates/warp_completer", "crates/warp_terminal", "crates/warp_util", ] [workspace.package] authors = ["Warp Team <dev@warp.dev>"] license = "AGPL-3.0-only" publish = false [workspace.dependencies] # Local workspace crates. This lets us reference them in other crates without specifying a path. ai = { path = "crates/ai" } ai_types = { path = "crates/ai_types" } app-installation-detection = { path = "crates/app-installation-detection" } asset_cache = { path = "crates/asset_cache" } asset_macro = { path = "crates/asset_macro" } build_cache = { path = "crates/build_cache" } channel_versions = { path = "crates/channel_versions", default-features = false } command = { path = "crates/command" } cloud_objects = { path = "crates/cloud_objects" } cloud_object_client = { path = "crates/cloud_object_client" } cloud_object_persistence = { path = "crates/cloud_object_persistence" } cloud_object_models = { path = "crates/cloud_object_models" } computer_use = { path = "crates/computer_use" } field_mask = { path = "crates/field_mask" } firebase = { path = "crates/firebase" } fuzzy_match = { path = "crates/fuzzy_match" } handlebars = { path = "crates/handlebars" } http_client = { path = "crates/http_client" } http_server = { path = "crates/http_server" } input_classifier = { path = "crates/input_classifier" } integration = { path = "crates/integration" } ipc = { path = "crates/ipc" } ipynb_parser = { path = "crates/ipynb_parser" } jsonrpc = { path = "crates/jsonrpc" } languages = { path = "crates/languages" } local_control = { path = "crates/local_control" } lsp = { path = "crates/lsp" } markdown_parser = { path = "crates/markdown_parser" } mcp = { path = "crates/mcp" } natural_language_detection = { path = "crates/natural_language_detection" } node_runtime = { path = "crates/node_runtime" } onboarding = { path = "crates/onboarding" } persistence = { path = "crates/persistence" } prevent_sleep = { path = "crates/prevent_sleep" } regex_dfas = { path = "crates/regex_dfas" } remote_server = { path = "crates/remote_server" } repo_metadata = { path = "crates/repo_metadata" } secret_redaction = { path = "crates/secret_redaction" } settings = { path = "crates/settings" } settings_value = { path = "crates/settings_value", default-features = false } settings_value_derive = { path = "crates/settings_value_derive" } simple_logger = { path = "crates/simple_logger" } string-offset = { path = "crates/string-offset" } sum_tree = { path = "crates/sum_tree" } syntax_tree = { path = "crates/syntax_tree" } ui_components = { path = "crates/ui_components" } vim = { path = "crates/vim" } virtual-fs = { path = "crates/virtual_fs" } voice_input = { path = "crates/voice_input" } warp = { path = "app" } warp_assets = { path = "crates/warp_assets" } warp_channel_config = { path = "crates/warp_channel_config" } warp_cli = { path = "crates/warp_cli" } warp_completer = { path = "crates/warp_completer" } warp_core = { path = "crates/warp_core" } warp_editor = { path = "crates/editor" } warp_errors = { path = "crates/warp_errors" } warp_features = { path = "crates/warp_features" } warp_files = { path = "crates/warp_files" } warp_graphql = { path = "crates/graphql" } warp_graphql_schema = { path = "crates/warp_graphql_schema" } warp_isolation_platform = { path = "crates/isolation_platform" } warp_logging = { path = "crates/warp_logging" } warp_managed_secrets = { path = "crates/managed_secrets" } warp_multi_agent_client = { path = "crates/warp_multi_agent_client" } warp_ripgrep = { path = "crates/warp_ripgrep" } warp_search_core = { path = "crates/warp_search_core" } warp_server_auth = { path = "crates/warp_server_auth" } warp_server_client = { path = "crates/warp_server_client" } warp_terminal = { path = "crates/warp_terminal" } warp_util = { path = "crates/warp_util" } warp_web_event_bus = { path = "crates/warp_web_event_bus" } warpui = { path = "crates/warpui" } warpui_core = { path = "crates/warpui_core" } warpui_extras = { path = "crates/warpui_extras", default-features = false } watcher = { path = "crates/watcher" } websocket = { path = "crates/websocket" } # Workspace-level dependencies used by multiple crates. Prefer adding dependencies # here to copying-and-pasting versions. axum = "0.8.4" anyhow = "1.0" arboard = { version = "3.6.1", default-features = false } arrayvec = "0.7.4" async-broadcast = "0.7.2" ashpd = { version = "0.11", default-features = false, features = ["async-std"] } async-channel = "2.3.1" async-compat = "0.2.5" async-io = "2.4.0" async-process = "2.3.0" async-stream = "0.3.5" async-task = "4.2.0" async-trait = "0.1.89" async-fs = "2.1.2" backtrace = "0.3.76" base64 = "0.22" bincode = "1.3.3" bitflags = { version = "2.4.0", features = ["serde"] } bitflags-serde-legacy = "0.1.1" block = "0.1.6" blocking = "1.6.2" bounded-vec-deque = "0.1" bytemuck = { version = "1.13.1" } bytes = { version = "1.11.1", features = ["serde"] } command-corrections = { git = "https://github.com/warpdotdev/command-corrections.git", rev = "eae08c8c51d9bc9741fcb17eef2c21f696aebbeb" } core-foundation = "0.10.1" concat-idents = "1.1.4" cfg_aliases = "0.2.1" cfg-if = "1.0.0" chrono = { version = "0.4.38", features = ["serde"] } clap = { version = "4.5", features = ["derive"] } cocoa = "=0.26.0" ctrlc = "3.4.7" crc = "3.4.0" cynic = { version = "3" } cynic-codegen = { version = "3", features = ["rkyv"] } dashmap = "6.1.0" derive_more = "0.99.17" diesel = { version = "2.3.8", default-features = false } directories = "6.0" dunce = "1.0.1" enum-iterator = "1.1.3" env_logger = "0.10.0" event-listener = "5.4.0" float-cmp = "0.9.0" font-kit = { git = "https://github.com/warpdotdev/font-kit", rev = "a04b225ecb639bb850f21d05212cfdc7465000f3", default-features = false, features = [ "source", ] } futures = { version = "0.3", features = ["executor", "thread-pool"] } futures-lite = "1.13.0" futures-util = { version = "0.3", default-features = false } fs4 = { version = "0.13.1", features = ["sync"] } get-size = { version = "0.1.4", features = ["derive"] } globset = "0.4.18" gloo = { version = "0.11.0", default-features = false, features = [ "events", "futures", "utils", ] } graphql-ws-client = { version = "0.11.1", default-features = false } hashbrown = "0.17.1" hex = "0.4.3" # This matches the version of hyper used by reqwest. hyper = "1.6.0" html5ever = "0.35.0" http = "1.1.0" humantime = "2.1.0" image = { version = "0.25.9", default-features = false, features = [ "rayon", "jpeg", "png", "gif", "webp", ] } instant = { version = "0.1.12", features = ["wasm-bindgen"] } iso8601-duration = { version = "0.2.0", features = ["chrono", "serde"] } itertools = "0.14.0" jaq-json = { version = "2.0", features = ["serde"] } # Disabling the default `formats` feature is intended to avoid pulling in # CBOR/TOML/XML/YAML support, but `jaq-all` currently depends on `jaq-fmts` # with its default features enabled, which re-enables all those parsers transitively. # The long-term fix is https://github.com/01mf02/jaq/issues/431. jaq-all = { version = "0.1", default-features = false } jsonschema = { version = "0.45", default-features = false } lasso = { version = "0.7.3", features = ["multi-threaded"] } lazy_static = "1.4.0" libc = "0.2.81" libtest-mimic = "0.8.2" line-ending = "1.4.0" log = { version = "0.4", features = ["serde", "std"] } mermaid_to_svg = { git = "https://github.com/warpdotdev/mermaid-to-svg.git", rev = "8d3f789c2eb49335d7bf247a06bb649f59b6d4ed" } mime_guess = "2.0" minimp4 = "0.1.2" nix = { version = "0.26.4", default-features = false, features = ["signal"] } notify-debouncer-full = { git = "https://github.com/warpdotdev/notify", rev = "91b719849bc04ef251bcb2cc61076b099204e970" } nom = "7.1.1" num-traits = "0.2" oauth2 = { version = "5.0.0", default-features = false } opentelemetry = { version = "0.32.0", default-features = false, features = ["trace"] } opentelemetry-http = "0.32.0" opentelemetry-otlp = { version = "0.32.0", default-features = false, features = [ "gzip-http", "http-proto", "trace", "zstd-http", ] } opentelemetry_sdk = { version = "0.32.1", default-features = false, features = ["trace"] } openh264 = "0.8" static_assertions = "1.1.0" url = "2.5.4" urlocator = "0.1.4" mockall = "0.13.1" objc = "0.2" objc2 = "0.6.3" objc2-app-kit = { version = "0.3.2", default-features = false, features = ["NSScreen", "objc2-core-foundation"] } objc2-av-foundation = { version = "0.3.2", default-features = false } objc2-core-foundation = "0.3.2" objc2-core-graphics = "0.3.2" objc2-foundation = { version = "0.3", default-features = false, features = ["std"] } objc2-metal = { version = "0.3.2", default-features = false } objc2-quartz-core = { version = "0.3.2", default-features = false } dispatch2 = { version = "0.3.0", default-features = false, features = ["std", "block2"] } once_cell = "1.20.2" ordered-float = { version = "3.0.0", features = ["serde"] } parking_lot = "0.12.1" pathfinder_color = "0.5" pathfinder_geometry = "0.5.1" pin-project = "1.0.10" pprof = "0.15.0" prost = "0.14.3" prost-build = "0.14.3" prost-reflect = "0.16.3" prost-types = "0.14.3" qrcode = { version = "0.14.1", default-features = false } rand = "0.8.6" rangemap = "1.3.0" reqwest = { version = "0.13", features = [ "blocking", "brotli", "gzip", "form", "json", "multipart", "query", "stream", ] } reqwest-eventsource = { package = "aha-reqwest-eventsource", version = "0.1" } resvg = "0.47.0" rust-embed = { version = "8.7.0", features = ["include-exclude"] } rustc-hash = "2.1.1" rustls = "0.23.39" schemars = { version = "1", features = ["chrono04"] } sentry = { version = "0.47.0", default-features = false, features = [ "anyhow", "backtrace", "contexts", "debug-images", "panic", "release-health", "reqwest", "rustls", ] } sentry-log = "0.47.0" serde = { version = "1.0", features = ["derive", "rc"] } serde_bytes = "0.11" serde-bytes-repr = "0.3" serde_json = { version = "1.0", features = ["raw_value"] } serde_urlencoded = "0.7" serde_with = "^3.21" serde_yaml = "0.8" session-sharing-protocol = { git = "https://github.com/warpdotdev/session-sharing-protocol.git", rev = "fcd0fea35ab9f782043c8ec74fd81bce187ded9f" } similar = { version = "2.7", features = ["inline"] } simplelog = "0.12.2" smallvec = "1.6.1" smol_str = "0.2.2" strsim = "0.11" strum = "0.27" strum_macros = "0.27" tempfile = "3.8.0" thiserror = "2.0.17" tokio = "1.47.1" tokio-util = { version = "0.7", features = ["io"] } toml_edit = "0.25.5" tower = "0.5.2" tower-http = "0.6.6" tracing = "0.1.40" tracing-futures = "0.2.5" tracing-opentelemetry = { version = "0.33.0", default-features = false } tracing-subscriber = { version = "0.3.22", default-features = false, features = [ "registry", "std", ] } arborium = { version = "2", default-features = false, features = [ "lang-rust", "lang-go", "lang-yaml", "lang-python", "lang-javascript", "lang-typescript", "lang-tsx", "lang-java", "lang-cpp", "lang-bash", "lang-c-sharp", "lang-html", "lang-css", "lang-c", "lang-json", "lang-jq", "lang-hcl", "lang-lua", "lang-nix", "lang-ruby", "lang-php", "lang-toml", "lang-swift", "lang-kotlin", "lang-scala", "lang-powershell", "lang-elixir", "lang-sql", "lang-starlark", "lang-objc", "lang-xml", "lang-vue", "lang-dockerfile", "lang-markdown", ] } unicode-general-category = "1.1.0" unicode-linebreak = "0.1.5" unicode-segmentation = "1.11.0" unicode-width = "0.1.12" uuid = { version = "1.1.2", features = ["v4", "v5", "serde", "js"] } vec1 = { version = "1.8.0", features = ["serde"] } version-compare = "0.1" vte = { git = "https://github.com/warpdotdev/vte.git", rev = "4b399c87b63ba88f45709edaa6383fc519f6c900", default-features = false } walkdir = "2" warp-workflows = { git = "https://github.com/warpdotdev/workflows", rev = "793a98ddda6ef19682aed66364faebd2829f0e01" } warp_multi_agent_api = { git = "https://github.com/warpdotdev/warp-proto-apis.git", rev = "7b638a3bce15b6159116c25caa1dda62cf004b0e" } wasm-bindgen = "0.2.89" wasm-bindgen-futures = "0.4.42" web-sys = { version = "0.3.69", features = [ "Blob", "Clipboard", "ClipboardEvent", "ClipboardItem", "CompositionEvent", "Document", "DataTransfer", "Event", "HtmlCanvasElement", "HtmlInputElement", "InputEvent", "Navigator", "MediaQueryList", "Window", "Notification", "NotificationPermission", ] } # Disable default features to disable support for WebGPU, which does not yet # have wide browser support. We enable all other default feature of wgpu, # though. wgpu = { version = "30.0.0", default-features = false, features = [ "dx12", "gles", "metal", "parking_lot", "std", "vulkan", "wgsl", ] } zbus = "5.9.0" memchr = "2" memo-map = "0.3.1" async-recursion = "1.0.0" getset = "0.1.1" regex = "1.11.1" regex-automata = "0.4.6" dirs = "6.0.0" rayon = "1.10.0" sha2 = "0.10" shellexpand = "3.1.1" warp-command-signatures = { git = "https://github.com/warpdotdev/command-signatures.git", rev = "48fd7aa5b7b4d99f5db57d1c5a25c47c05567fcf", default-features = false } winit = { git = "https://github.com/warpdotdev/winit.git", rev = "14db95a686387211d57cf2afd1d908b2d82a20fe" } x11rb = "0.13.0" mockito = "1.7.0" sysinfo = { version = "0.37.0", default-features = false, features = [ "system", "multithread", ] } windows = { version = "0.62.2", features = [ "Win32", "Win32_System", "Win32_System_Kernel", "Win32_System_Threading", "Wdk_System", "Wdk_System_SystemServices", "Win32_System_Com", "Win32_System_SecurityCenter", "Win32_System_SystemInformation", "Win32_System_Console", ] } windows-core = { version = "0.62.2" } windows-registry = { version = "0.2.0" } windows-result = { version = "0.2.0" } winreg = "0.55.0" typed-path = "0.10.0" streaming-iterator = "0.1.0" derivative = "2.2.0" parquet = { version = "55.0.0", features = ["arrow"] } rmcp = { version = "1.6" } [profile.release] # Use line-tables-only (debug = 1) rather than full debuginfo (debug = 2 / # `true`). Line tables are enough to symbolicate panics and Sentry stack # traces with file/line info, but they omit the per-variable/type DWARF that # dominates DWARF size. Dropping the type info significantly reduces rustc's # peak memory during ThinLTO + codegen (which was OOM-killing release builds # on CI), at the cost of not being able to inspect locals/types when # attaching a debugger to a release binary. debug = 1 # Force the rust compiler to create a dSYM. Starting in 1.53 the default on MacOS is "unpacked". split-debuginfo = "packed" [profile.dev] # Use line-tables-only to speed up dev builds. Change to `debug = true` if you # need full debuginfo for step-through debugging (gdb/lldb). debug = "line-tables-only" # loads debuginfo without needing to run dsymutil, leave the .o object files # in the build output directory instead of deleting them, and skips the step of running dsymutil. # Rust's backtrace support is smart enough to know how to find these .o files. # This should work as long as you don't need to move the binary to a different # location while retaining the debug information. split-debuginfo = "unpacked" [profile.dev.package] # Improve the performance of core terminal logic. warp_terminal.opt-level = 3 # Minimize the runtime overhead of CPU profiling at the cost of a small # increase in compile time for this crate. backtrace.opt-level = 3 # Minimize the runtime overhead of CPU profiling at the cost of a small # increase in compile time for this crate. pprof.opt-level = 3 # Ensure jemalloc is optimized for performance. tikv-jemallocator.opt-level = 3 tikv-jemalloc-sys.opt-level = 3 jemalloc_pprof.opt-level = 3 pprof_util.opt-level = 3 # Vastly improve runtime performance of some font and text layout logic # at the cost of a small increase in compile time for this crate. ttf-parser.opt-level = 3 # Improve the performance of Agent Mode diff application, particularly in tests. strsim.opt-level = 3 # Improve performance of SSE stream parsing. eventsource-stream.opt-level = 3 memchr.opt-level = 3 nom.opt-level = 3 # Improve performance of core runtime components slightly. tokio.opt-level = 1 rayon-core.opt-level = 1 # Improve performance of image processing for debug builds. fdeflate.opt-level = 3 image.opt-level = 3 png.opt-level = 3 miniz_oxide.opt-level = 3 # A profile that behaves like release but enables ThinLTO, which should produce # binaries with better runtime performance with little build-time overhead. [profile.release-lto] inherits = "release" lto = "thin" # A shorthand profile for `release-lto`. # Windows enforces that any path is a maximum of 255 characters and # the length of this profile is sufficiently long that it can cause # compiler errors. We use a shorthand to get around these issues. [profile.rlto] inherits = "release-lto" # A custom release-like profile that forces debug assertions on. [profile.release-lto-debug_assertions] inherits = "release-lto" debug-assertions = true # A shorthand profile for `release-lto-debug_assertions`. # Windows enforces that any path is a maximum of 255 characters and # the length of this profile is sufficiently long that it can cause # compiler errors. We use a shorthand to get around these issues.