365 lines
10 KiB
TOML
365 lines
10 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/collections",
|
|
"crates/gpui",
|
|
"crates/gpui_macros",
|
|
"crates/gpui_tokio",
|
|
"crates/html_to_markdown",
|
|
"crates/http_client",
|
|
"crates/http_client_tls",
|
|
"crates/media",
|
|
"crates/refineable",
|
|
"crates/refineable/derive_refineable",
|
|
"crates/reqwest_client",
|
|
"crates/scheduler",
|
|
"crates/sum_tree",
|
|
"crates/util",
|
|
"crates/util_macros",
|
|
"crates/watch",
|
|
"tooling/perf",
|
|
]
|
|
|
|
[workspace.package]
|
|
publish = false
|
|
edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
|
|
#
|
|
# Workspace member crates
|
|
#
|
|
|
|
collections = { path = "crates/collections", version = "0.1.0" }
|
|
derive_refineable = { path = "crates/refineable/derive_refineable" }
|
|
gpui = { path = "crates/gpui", default-features = false }
|
|
gpui_macros = { path = "crates/gpui_macros" }
|
|
gpui_tokio = { path = "crates/gpui_tokio" }
|
|
html_to_markdown = { path = "crates/html_to_markdown" }
|
|
http_client = { path = "crates/http_client" }
|
|
http_client_tls = { path = "crates/http_client_tls" }
|
|
media = { path = "crates/media" }
|
|
refineable = { path = "crates/refineable" }
|
|
reqwest_client = { path = "crates/reqwest_client" }
|
|
scheduler = { path = "crates/scheduler" }
|
|
sum_tree = { path = "crates/sum_tree" }
|
|
util = { path = "crates/util" }
|
|
util_macros = { path = "crates/util_macros" }
|
|
watch = { path = "crates/watch" }
|
|
perf = { path = "tooling/perf" }
|
|
|
|
#
|
|
# External crates
|
|
#
|
|
|
|
aho-corasick = "1.1"
|
|
circular-buffer = "1.0"
|
|
any_vec = "0.14"
|
|
anyhow = "1.0.86"
|
|
arrayvec = { version = "0.7.4", features = ["serde"] }
|
|
ashpd = { version = "0.11", default-features = false, features = ["async-std"] }
|
|
async-compat = "0.2.1"
|
|
async-compression = { version = "0.4", features = ["gzip", "futures-io"] }
|
|
async-dispatcher = "0.1"
|
|
async-fs = "2.1"
|
|
async-lock = "2.1"
|
|
async-recursion = "1.0.0"
|
|
async-tar = "0.5.1"
|
|
async-task = "4.7"
|
|
async-trait = "0.1"
|
|
async-tungstenite = "0.31.0"
|
|
async_zip = { version = "0.0.18", features = ["deflate", "deflate64"] }
|
|
backtrace = "0.3"
|
|
base64 = "0.22"
|
|
bincode = "1.2.1"
|
|
bitflags = "2.6.0"
|
|
blade-graphics = { version = "0.7.0" }
|
|
blade-macros = { version = "0.3.0" }
|
|
blade-util = { version = "0.3.0" }
|
|
brotli = "8.0.2"
|
|
bytes = "1.0"
|
|
cfg-if = "1.0.3"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
cocoa = "=0.26.0"
|
|
cocoa-foundation = "=0.2.0"
|
|
convert_case = "0.8.0"
|
|
core-foundation = "=0.10.0"
|
|
core-foundation-sys = "0.8.6"
|
|
core-video = { version = "0.4.3", features = ["metal"] }
|
|
crossbeam = "0.8.4"
|
|
ctor = "0.4.0"
|
|
dashmap = "6.0"
|
|
derive_more = "0.99.17"
|
|
dirs = "4.0"
|
|
env_logger = "0.11"
|
|
futures = "0.3"
|
|
futures-lite = "1.13"
|
|
git2 = { version = "0.20.1", default-features = false }
|
|
globset = "0.4"
|
|
heck = "0.5"
|
|
hex = "0.4.3"
|
|
html5ever = "0.27.0"
|
|
indoc = "2"
|
|
inventory = "0.3.19"
|
|
http = "1.1"
|
|
http-body = "1.0"
|
|
hyper = "0.14"
|
|
image = "0.25.1"
|
|
indexmap = { version = "2.7.0", features = ["serde"] }
|
|
itertools = "0.14.0"
|
|
libc = "0.2"
|
|
linkify = "0.10.0"
|
|
log = { version = "0.4.16", features = ["kv_unstable_serde", "serde"] }
|
|
mach2 = "0.5"
|
|
markup5ever_rcdom = "0.3.0"
|
|
metal = "0.29"
|
|
naga = { version = "25.0", features = ["wgsl-in"] }
|
|
nix = "0.29"
|
|
objc = "0.2"
|
|
objc2-foundation = { version = "=0.3.1", default-features = false, features = [
|
|
"NSArray",
|
|
"NSAttributedString",
|
|
"NSBundle",
|
|
"NSCoder",
|
|
"NSData",
|
|
"NSDate",
|
|
"NSDictionary",
|
|
"NSEnumerator",
|
|
"NSError",
|
|
"NSGeometry",
|
|
"NSNotification",
|
|
"NSNull",
|
|
"NSObjCRuntime",
|
|
"NSObject",
|
|
"NSProcessInfo",
|
|
"NSRange",
|
|
"NSRunLoop",
|
|
"NSString",
|
|
"NSURL",
|
|
"NSUndoManager",
|
|
"NSValue",
|
|
"objc2-core-foundation",
|
|
"std"
|
|
] }
|
|
open = "5.0.0"
|
|
ordered-float = "2.1.1"
|
|
palette = { version = "0.7.5", default-features = false, features = ["std"] }
|
|
parking_lot = "0.12.1"
|
|
pathdiff = "0.2"
|
|
postage = { version = "0.5", features = ["futures-traits"] }
|
|
pretty_assertions = { version = "1.3.0", features = ["unstable"] }
|
|
proc-macro2 = "1.0.93"
|
|
profiling = "1"
|
|
pulldown-cmark = { version = "0.12.0", default-features = false }
|
|
quote = "1.0.9"
|
|
rand = "0.9"
|
|
rayon = "1.8"
|
|
regex = "1.5"
|
|
# WARNING: If you change this, you must also publish a new version of zed-reqwest to crates.io
|
|
reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = [
|
|
"charset",
|
|
"http2",
|
|
"macos-system-configuration",
|
|
"multipart",
|
|
"rustls-tls-native-roots",
|
|
"socks",
|
|
"stream",
|
|
], package = "zed-reqwest", version = "0.12.15-zed" }
|
|
rust-embed = { version = "8.4", features = ["include-exclude"] }
|
|
rustc-hash = "2.1.0"
|
|
rustls = { version = "0.23.26" }
|
|
rustls-platform-verifier = "0.5.0"
|
|
# WARNING: If you change this, you must also publish a new version of zed-scap to crates.io
|
|
scap = { git = "https://github.com/zed-industries/scap", rev = "4afea48c3b002197176fb19cd0f9b180dd36eaac", default-features = false, package = "zed-scap", version = "0.0.8-zed" }
|
|
schemars = { version = "1.0", features = ["indexmap2"] }
|
|
semver = { version = "1.0", features = ["serde"] }
|
|
serde = { version = "1.0.221", features = ["derive", "rc"] }
|
|
serde_json = { version = "1.0.144", features = ["preserve_order", "raw_value"] }
|
|
serde_json_lenient = { version = "0.2", features = [
|
|
"preserve_order",
|
|
"raw_value",
|
|
] }
|
|
serde_urlencoded = "0.7"
|
|
sha2 = "0.10"
|
|
shlex = "1.3.0"
|
|
shellexpand = "2.1.0"
|
|
slotmap = "1.0.6"
|
|
smallvec = { version = "1.6", features = ["union", "const_new"] }
|
|
smol = "2.0"
|
|
stacksafe = "0.1"
|
|
strsim = "0.11"
|
|
strum = { version = "0.27.2", features = ["derive"] }
|
|
subtle = "2.5.0"
|
|
syn = { version = "2.0.101", features = ["full", "extra-traits", "visit-mut"] }
|
|
sys-locale = "0.3.1"
|
|
sysinfo = "0.37.0"
|
|
take-until = "0.2.0"
|
|
tempfile = "3.20.0"
|
|
thiserror = "2.0.12"
|
|
time = { version = "0.3", features = [
|
|
"macros",
|
|
"parsing",
|
|
"serde",
|
|
"serde-well-known",
|
|
"formatting",
|
|
"local-offset",
|
|
] }
|
|
tokio = { version = "1" }
|
|
tokio-tungstenite = { version = "0.26", features = ["__rustls-tls"] }
|
|
tokio-socks = { version = "0.5.2", default-features = false, features = ["futures-io", "tokio"] }
|
|
tracing = "0.1.40"
|
|
unicase = "2.6"
|
|
unicode-segmentation = "1.10"
|
|
url = "2.2"
|
|
uuid = { version = "1.1.2", features = ["v4", "v5", "v7", "serde"] }
|
|
walkdir = "2.5"
|
|
which = "6.0.0"
|
|
windows-core = "0.61"
|
|
yawc = "0.2.5"
|
|
zeroize = "1.8"
|
|
ciborium = "0.2"
|
|
|
|
[workspace.dependencies.windows]
|
|
version = "0.61"
|
|
features = [
|
|
"Foundation_Numerics",
|
|
"Storage_Search",
|
|
"Storage_Streams",
|
|
"System_Threading",
|
|
"UI_ViewManagement",
|
|
"Wdk_System_SystemServices",
|
|
"Win32_Globalization",
|
|
"Win32_Graphics_Direct3D",
|
|
"Win32_Graphics_Direct3D11",
|
|
"Win32_Graphics_Direct3D_Fxc",
|
|
"Win32_Graphics_DirectComposition",
|
|
"Win32_Graphics_DirectWrite",
|
|
"Win32_Graphics_Dwm",
|
|
"Win32_Graphics_Dxgi",
|
|
"Win32_Graphics_Dxgi_Common",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_Graphics_Imaging",
|
|
"Win32_Graphics_Hlsl",
|
|
"Win32_Networking_WinSock",
|
|
"Win32_Security",
|
|
"Win32_Security_Credentials",
|
|
"Win32_Security_Cryptography",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_Com",
|
|
"Win32_System_Com_StructuredStorage",
|
|
"Win32_System_Console",
|
|
"Win32_System_DataExchange",
|
|
"Win32_System_IO",
|
|
"Win32_System_LibraryLoader",
|
|
"Win32_System_Memory",
|
|
"Win32_System_Ole",
|
|
"Win32_System_Performance",
|
|
"Win32_System_Pipes",
|
|
"Win32_System_SystemInformation",
|
|
"Win32_System_SystemServices",
|
|
"Win32_System_Threading",
|
|
"Win32_System_Variant",
|
|
"Win32_System_WinRT",
|
|
"Win32_UI_Controls",
|
|
"Win32_UI_HiDpi",
|
|
"Win32_UI_Input_Ime",
|
|
"Win32_UI_Input_KeyboardAndMouse",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_Shell_Common",
|
|
"Win32_UI_Shell_PropertiesSystem",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
]
|
|
|
|
[patch.crates-io]
|
|
calloop = { git = "https://github.com/zed-industries/calloop" }
|
|
|
|
[profile.dev]
|
|
split-debuginfo = "unpacked"
|
|
# https://github.com/rust-lang/cargo/issues/16104
|
|
incremental = false
|
|
codegen-units = 16
|
|
|
|
# mirror configuration for crates compiled for the build platform
|
|
# (without this cargo will compile ~400 crates twice)
|
|
[profile.dev.build-override]
|
|
codegen-units = 16
|
|
|
|
[profile.dev.package]
|
|
# proc-macros start
|
|
gpui_macros = { opt-level = 3 }
|
|
derive_refineable = { opt-level = 3 }
|
|
util_macros = { opt-level = 3 }
|
|
quote = { opt-level = 3 }
|
|
syn = { opt-level = 3 }
|
|
proc-macro2 = { opt-level = 3 }
|
|
# proc-macros end
|
|
|
|
taffy = { opt-level = 3 }
|
|
resvg = { opt-level = 3 }
|
|
|
|
collections = { codegen-units = 1 }
|
|
refineable = { codegen-units = 1 }
|
|
reqwest_client = { codegen-units = 1 }
|
|
|
|
[profile.release]
|
|
debug = "limited"
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
[profile.release-fast]
|
|
inherits = "release"
|
|
debug = "full"
|
|
lto = false
|
|
codegen-units = 16
|
|
|
|
[workspace.lints.rust]
|
|
unexpected_cfgs = { level = "allow" }
|
|
|
|
[workspace.lints.clippy]
|
|
dbg_macro = "deny"
|
|
todo = "deny"
|
|
|
|
# This is not a style lint, see https://github.com/rust-lang/rust-clippy/pull/15454
|
|
# Remove when the lint gets promoted to `suspicious`.
|
|
declare_interior_mutable_const = "deny"
|
|
|
|
redundant_clone = "deny"
|
|
disallowed_methods = "deny"
|
|
|
|
# We currently do not restrict any style rules
|
|
# as it slows down shipping code to Zed.
|
|
#
|
|
# Running ./script/clippy can take several minutes, and so it's
|
|
# common to skip that step and let CI do it. Any unexpected failures
|
|
# (which also take minutes to discover) thus require switching back
|
|
# to an old branch, manual fixing, and re-pushing.
|
|
#
|
|
# In the future we could improve this by either making sure
|
|
# Zed can surface clippy errors in diagnostics (in addition to the
|
|
# rust-analyzer errors), or by having CI fix style nits automatically.
|
|
style = { level = "allow", priority = -1 }
|
|
|
|
# Individual rules that have violations in the codebase:
|
|
type_complexity = "allow"
|
|
let_underscore_future = "allow"
|
|
|
|
# Motivation: We use `vec![a..b]` a lot when dealing with ranges in text, so
|
|
# warning on this rule produces a lot of noise.
|
|
single_range_in_vec_init = "allow"
|
|
|
|
# in Rust it can be very tedious to reduce argument count without
|
|
# running afoul of the borrow checker.
|
|
too_many_arguments = "allow"
|
|
|
|
# We often have large enum variants yet we rarely actually bother with splitting them up.
|
|
large_enum_variant = "allow"
|
|
|
|
# Boolean expressions can be hard to read, requiring only the minimal form gets in the way
|
|
nonminimal_bool = "allow"
|
|
|
|
[workspace.metadata.cargo-machete]
|
|
ignored = [
|
|
"bindgen",
|
|
"cbindgen",
|
|
"serde",
|
|
] |