-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCargo.toml
More file actions
189 lines (179 loc) · 7.07 KB
/
Copy pathCargo.toml
File metadata and controls
189 lines (179 loc) · 7.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
[workspace]
resolver = "2"
# Example plugins compile to wasm32-unknown-unknown, not the host target.
exclude = ["examples/plugins/sepia-filter", "examples/plugins/pgm-codec"]
members = [
"crates/app",
"crates/core",
"crates/layer-fx",
"crates/neural",
"crates/psd-descriptor",
"crates/plugin-api",
"crates/pixel-ops",
"crates/compositor",
"crates/compositor-gpu",
"crates/fx",
"crates/color",
"crates/codec-psd",
"crates/codec-affinity",
"crates/codec-raw",
"crates/vector",
"crates/text-engine",
"crates/adjustments",
"crates/plugin-host-8bf",
"crates/plugin-host-wasm",
"crates/plugin-sdk",
"crates/preview",
"crates/quicklook",
"crates/colormgmt",
"crates/mcp",
"crates/gallery",
"crates/ui",
"plugins/codecs-common",
"plugins/tools-basic",
"plugins/tools-paint",
"plugins/tools-retouch",
"plugins/tools-warp",
"plugins/tools-doc",
"plugins/tools-select",
"plugins/tools-transform",
"plugins/tools-vector",
"plugins/tools-type",
"plugins/filters-core",
"plugins/commands-core",
]
[workspace.package]
version = "0.12.0"
edition = "2021"
license = "MIT"
repository = "https://github.com/Infrawrench/schist"
[workspace.dependencies]
# internal
schist-core = { path = "crates/core" }
schist-plugin-api = { path = "crates/plugin-api" }
schist-pixel-ops = { path = "crates/pixel-ops" }
schist-compositor = { path = "crates/compositor" }
schist-compositor-gpu = { path = "crates/compositor-gpu" }
schist-fx = { path = "crates/fx" }
schist-color = { path = "crates/color" }
schist-codec-psd = { path = "crates/codec-psd" }
schist-codec-affinity = { path = "crates/codec-affinity" }
schist-codec-raw = { path = "crates/codec-raw" }
schist-vector = { path = "crates/vector" }
schist-layer-fx = { path = "crates/layer-fx" }
schist-neural = { path = "crates/neural" }
schist-psd-descriptor = { path = "crates/psd-descriptor" }
schist-preview = { path = "crates/preview" }
schist-ui = { path = "crates/ui" }
# zlib for PSD's zip-compressed channels; pure Rust, no C toolchain.
miniz_oxide = "0.8"
# zstd for Affinity 2 files; also pure Rust.
ruzstd = "0.9"
# SIMD CRC-32 (pure Rust with std-detected SSE4.2/PCLMUL paths).
crc32fast = "1.5"
schist-text-engine = { path = "crates/text-engine" }
schist-adjustments = { path = "crates/adjustments" }
schist-plugin-host-8bf = { path = "crates/plugin-host-8bf" }
schist-plugin-host-wasm = { path = "crates/plugin-host-wasm" }
schist-plugin-sdk = { path = "crates/plugin-sdk" }
schist-colormgmt = { path = "crates/colormgmt" }
schist-codecs-common = { path = "plugins/codecs-common" }
schist-tools-basic = { path = "plugins/tools-basic" }
schist-tools-paint = { path = "plugins/tools-paint" }
schist-tools-retouch = { path = "plugins/tools-retouch" }
schist-tools-warp = { path = "plugins/tools-warp" }
schist-tools-doc = { path = "plugins/tools-doc" }
schist-tools-select = { path = "plugins/tools-select" }
schist-tools-transform = { path = "plugins/tools-transform" }
schist-tools-vector = { path = "plugins/tools-vector" }
schist-tools-type = { path = "plugins/tools-type" }
schist-filters-core = { path = "plugins/filters-core" }
schist-commands-core = { path = "plugins/commands-core" }
schist-mcp = { path = "crates/mcp" }
schist-gallery = { path = "crates/gallery" }
# external
# Fork of gpui 0.2.2 adding PinchEvent/on_pinch and stylus pressure on the
# mouse events, which upstream has no equivalent of; needed for trackpad
# pinch-to-zoom and pressure-sensitive painting on the canvas. It also
# carries images to the Linux clipboards, which upstream writes as an
# empty string.
# Pinned by rev so a push to the fork cannot silently change builds.
gpui = { git = "https://github.com/IAmJSD/gpui", rev = "73c9da683944ce7f4f2fdde767cded8aaf783276" }
anyhow = "1"
thiserror = "2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
parking_lot = "0.12"
rayon = "1.10"
smallvec = "1.13"
rustc-hash = "2"
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp", "tiff"] }
# Runtime dlopen of libheif for HEIC import — the system's copy, or a
# user-consented download of IAmJSD/libheif-prebuilt. Keeps the build
# free of C dependencies (no pure-Rust HEVC decoder exists) and avoids
# the LGPL relink obligations static linking would carry.
libloading = "0.8"
byteorder = "1.5"
log = "0.4"
# The AI sidebar drives coding-agent harnesses through their SDKs: the
# community Rust port of the Claude Agent SDK (Claude Code), and the typed
# app-server protocol client for OpenAI's Codex. Both wrap the CLIs the
# user already has installed and logged in; neither talks to a model API
# directly, so no keys are handled here.
claude-agent-sdk-rs = "0.6"
codex-codes = { version = "0.150", default-features = false, features = ["sync-client"] }
# claude-agent-sdk-rs is tokio-based; the app runs one small runtime on
# the AI worker thread rather than adopting tokio app-wide.
tokio = { version = "1", default-features = false, features = ["rt"] }
futures = "0.3"
async-trait = "0.1"
# GPU compositing backend; wgpu is its own instance (GPUI's renderer does
# not expose a device to share).
wgpu = "27"
pollster = "0.4"
env_logger = "0.11"
# Opt-in crash reporting. No default features: they would pull reqwest and
# native-tls (an OpenSSL build) and turn on release-health sessions, logs and
# metrics -- all of which report on a *running* editor, not a crashed one.
# The ureq/rustls transport is the same HTTP stack the update check already
# links, so this adds no new way of talking to the network.
sentry = { version = "0.49", default-features = false, features = [
"backtrace",
"contexts",
"debug-images",
"panic",
"ureq",
"rustls",
] }
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 2
[profile.release]
lto = "thin"
debug = 1
# The .8bf plug-in helpers. They ship compressed inside the app binary,
# so their size is worth caring about in a way the app's own is not, and
# `debug = 1` costs a great deal here: a helper is 2.8 MB with debug info
# and 390 KB without. Nothing reads it — the crash handler reports a raw
# fault address belonging to the *plug-in*, and never symbolises anything
# — so it goes.
[profile.helper]
inherits = "release"
debug = false
strip = true
# The browser build (tools/web-build.sh). `release` keeps debuginfo for
# Sentry's symbolication; in a wasm download that is a third of the bytes
# and nothing reads DWARF in a browser, so it goes.
[profile.web]
inherits = "release"
debug = false
strip = "debuginfo"
# gpui's wasm32 support needs its vendored gpui_util/gpui_http_client (the
# registry versions pull smol, dirs, which, walkdir — none of which build on
# wasm32). `[patch.crates-io]` is only honored in the top-level manifest, so
# the fork's two patch entries are restated here; on native targets the
# vendored crates are byte-identical to the registry sources.
[patch.crates-io]
gpui_util = { git = "https://github.com/IAmJSD/gpui", rev = "73c9da683944ce7f4f2fdde767cded8aaf783276" }
gpui_http_client = { git = "https://github.com/IAmJSD/gpui", rev = "73c9da683944ce7f4f2fdde767cded8aaf783276" }