-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathCargo.toml
More file actions
166 lines (157 loc) · 5.62 KB
/
Copy pathCargo.toml
File metadata and controls
166 lines (157 loc) · 5.62 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
[workspace]
members = [
"crates/build-metadata",
"crates/runt",
"crates/runt-trust",
"crates/runt-workspace",
"crates/kernel-launch",
"crates/kernel-env",
"crates/automerge-store",
"crates/automerge-recovery",
"crates/notebook",
"crates/automunge",
"crates/comments-doc",
"crates/notebook-wire",
"crates/notebook-doc",
"crates/runtime-doc",
"crates/notebook-protocol",
"crates/notebook-cloud-transport",
"crates/notebook-sync",
"crates/nteract-identity",
"crates/nteract-telemetry",
"crates/xtask",
"crates/runtimed",
"crates/runt-publish",
"crates/runtimed-client",
"crates/runtimed-outputs",
"crates/runtimed-service",
"crates/runtimed-settings-sync",
"crates/runtimed-node",
"crates/runtimed-py",
"crates/runtimed-wasm",
"crates/mcp-client-branding",
"crates/mcp-supervisor",
"crates/nteract-markdown-engine",
"crates/nteract-markdown-wasm",
"crates/runt-mcp",
"crates/runt-mcp-proxy",
"crates/nteract-mcp",
"crates/repr-llm",
"crates/nteract-predicate",
"crates/sift-wasm",
]
default-members = ["crates/notebook"]
resolver = "2"
[workspace.package]
edition = "2021"
license = "BSD-3-Clause"
repository = "https://github.com/nteract/nteract"
[workspace.dependencies]
anyhow = "1"
arrow = { version = "54", default-features = false }
arrow-cast = { version = "54", default-features = false }
arrow-ord = { version = "54", default-features = false }
arrow-select = { version = "54", default-features = false }
automerge = "=0.11.0"
base64 = "0.22"
bytes = "1"
chrono = { version = "0.4", default-features = false }
clap = { version = "4.5.1", features = ["derive"] }
console_error_panic_hook = "0.1"
dirs = "6"
flate2 = "1"
futures = "0.3"
futures-util = "0.3"
hex = "0.4"
jiter = { version = "0.13", default-features = false, features = ["num-bigint"] }
jsonwebtoken = { version = "10", default-features = false, features = ["rust_crypto"] }
jupyter-protocol = "2.0.2"
jupyter-zmq-client = { version = "1.0.1", default-features = false }
libc = "0.2"
log = "0.4"
loro_fractional_index = "=1.6.0"
nbformat = "3.0.0"
nix = { version = "0.31", features = ["signal", "process"] }
notify = "8"
notify-debouncer-mini = "0.7"
parquet = { version = "54", default-features = false, features = ["arrow", "snap", "flate2", "zstd"] }
proptest = "1"
rattler = { version = "0.40", default-features = false, features = ["native-tls"] }
rattler_cache = { version = "0.6", default-features = false, features = ["native-tls"] }
rattler_conda_types = "0.44"
rattler_repodata_gateway = { version = "0.27", default-features = false, features = ["gateway", "native-tls"] }
rattler_solve = { version = "5.0", features = ["resolvo"] }
rattler_virtual_packages = "2.3"
regex = "1"
reqwest = { version = "0.12", default-features = false, features = ["native-tls"] }
reqwest-middleware = "0.4"
rmcp = "1.4"
schemars = "1"
serde = { version = "1", features = ["derive"] }
serde-wasm-bindgen = "0.6"
serde_json = "1"
serial_test = "3"
sha2 = "0.11"
rusqlite = { version = "0.32", features = ["bundled"] }
tar = "0.4"
tempfile = "3"
thiserror = "2"
tokio = "1.36.0"
tokio-tungstenite = "0.26"
toml = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
ts-rs = { version = "12", features = ["serde-compat", "format"] }
url = "2"
uuid = { version = "1", features = ["serde", "v4", "v5"] }
wasm-bindgen = "0.2"
wasm-bindgen-test = "0.3"
windows-sys = "0.52"
[workspace.lints.rust]
dead_code = "warn"
unused_imports = "warn"
unused_variables = "warn"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
# Prevent panics in user-facing code - crashes are terrible UX.
# CI runs `clippy -- -D warnings` so these become errors in CI.
# Use #[allow(clippy::unwrap_used)] with a comment explaining why it's safe.
unwrap_used = "warn"
expect_used = "warn"
[profile.dev]
split-debuginfo = "packed"
# sccache and cargo's incremental compilation fight each other: sccache
# caches whole-crate outputs, incremental caches per-function deltas
# inside a crate. With incremental on, sccache's Rust hit rate hovers
# near zero. Turn it off so sccache actually shares builds across
# worktrees, branches, and fresh clones.
incremental = false
# Build third-party deps optimized even in dev. Our own crates stay at
# opt-level=0 for fast incremental rebuilds. Automerge in particular is
# unusable at opt-level=0: widget comm_opens were taking 300-450ms of
# CRDT write time each. Cost is a slower first compile; sccache caches
# the optimized deps so every later build and fresh worktree benefits.
[profile.dev.package."*"]
opt-level = 3
# Build scripts and proc macros run at build time; optimizing them cuts
# the total dev build wall-clock even accounting for the slower compile.
[profile.dev.build-override]
opt-level = 3
[profile.release]
opt-level = 'z'
# Strip DWARF debug info but keep the wasm name section. Browser
# panics from runtimed-wasm and sift-wasm would otherwise show
# opaque indices like `wasm[0]:0x12345` — useless for diagnosing
# field reports. Daemon/CLI binaries take a small (~1-3%) size hit
# but get the same benefit for production panic traces. We avoided
# a custom `[profile.wasm-release]` because wasm-pack's metadata
# parser only recognizes `release`/`profiling`/`dev` — custom
# profiles silently bypass `wasm-opt = false` and other settings.
strip = "debuginfo"
lto = true
codegen-units = 1
# Keep unwinding so catch_unwind guards work in release — both runtimed
# (spawn_supervised task recovery) and document-owned Automerge recovery.
# The binary size cost is ~2-5% but prevents silent process death on
# shared notebooks.
panic = "unwind"