-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
136 lines (121 loc) · 5.03 KB
/
Copy pathCargo.toml
File metadata and controls
136 lines (121 loc) · 5.03 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
[workspace]
resolver = "2"
members = [
"crates/aether-protocol",
"crates/aether-markdown",
"crates/aether-server",
"crates/aether-tui",
"crates/aether-client",
"crates/aether-connection",
"crates/aether-iced",
"crates/aether-web",
"crates/aether-ae",
]
[workspace.package]
version = "0.4.0"
edition = "2021"
license = "MIT"
[profile.dev]
opt-level = 1
# Line tables, not full DWARF. Full debuginfo was **85% of every binary** (a 232 MB test binary
# carried 198 MB of it, over 24 MB of actual code), which is paid three times over: disk, link
# time, and — the one that bites — linker memory, since a workspace-wide `cargo test` links ~29 of
# these at once and can take the machine into swap. Panic backtraces still name our file:line,
# and symbol tables are untouched so profilers still resolve frames; what's given up is variable
# inspection in a debugger.
debug = "line-tables-only"
[profile.dev.package."*"]
opt-level = 2
# Dependencies get none at all: their debuginfo is the bulk of the DWARF above, and a frame inside
# tokio or iced is not where this codebase is debugged from.
debug = 0
[workspace.dependencies]
aether-protocol = { path = "crates/aether-protocol" }
aether-markdown = { path = "crates/aether-markdown" }
aether-client = { path = "crates/aether-client" }
aether-connection = { path = "crates/aether-connection" }
aether-server = { path = "crates/aether-server" }
aether-tui = { path = "crates/aether-tui" }
aether-iced = { path = "crates/aether-iced" }
# Serde / JSON-RPC
serde = { version = "1", features = ["derive"] }
serde_json = "1"
uuid = { version = "1", features = ["v4", "serde", "js"] }
# OS entropy for the Randomize transform (explicitly password-suitable, so not `fastrand`).
getrandom = "0.3"
# Markdown (hover popovers) — parsed once in the core into an AST the shells render. Only the
# parser is needed (no HTML renderer); already present transitively via iced's markdown widget.
pulldown-cmark = { version = "0.12", default-features = false }
# Async runtime & WebSocket transport
tokio = { version = "1", features = ["rt-multi-thread", "macros", "io-util", "net", "time", "sync", "signal", "fs"] }
tokio-tungstenite = "0.29"
futures-util = "0.3"
# Diagnostics
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# CLI
clap = { version = "4", features = ["derive"] }
# Error handling
anyhow = "1"
thiserror = "2"
# Server-only
ropey = "1"
regex = "1"
tree-sitter = "0.26"
tree-sitter-rust = "0.24"
tree-sitter-md = "0.5"
tree-sitter-toml-ng = "0.7"
tree-sitter-html = "0.23"
tree-sitter-javascript = "0.25"
tree-sitter-typescript = "0.23"
tree-sitter-python = "0.25"
tree-sitter-go = "0.25"
tree-sitter-elixir = "0.3"
tree-sitter-erlang = "0.19"
tree-sitter-css = "0.25"
tree-sitter-bash = "0.25"
tree-sitter-json = "0.24"
tree-sitter-yaml = "0.7"
tree-sitter-sequel = "0.3"
tree-sitter-hcl = "1.1"
# Dockerfile grammar. The `tree-sitter-dockerfile` crate is an unmaintained ABI-14 build; this is
# the maintained fork of it (same grammar lineage, covers `Containerfile` too) and ships both a
# highlights and an injections query.
tree-sitter-containerfile = "0.9"
# Commit messages (`COMMIT_EDITMSG`). We ship our own highlights query rather than the crate's:
# upstream captures use nvim's `markup.*` vocabulary, which `theme.rs` doesn't map.
tree-sitter-gitcommit = "0.5"
# Quiver grammar, pinned to the upstream repo's latest release tag (the crate lives in its
# `tree-sitter` subdirectory; Cargo resolves it by package name). Not published to crates.io.
tree-sitter-quiver = { git = "https://github.com/joefreeman/quiver", tag = "v0.5.0" }
streaming-iterator = "0.1"
# Git integration (diff/blame). Local-only: default features (ssh/https/network) disabled so
# the build doesn't pull in openssl/libssh2 — we never talk to a remote.
git2 = { version = "0.21", default-features = false }
notify = "8"
toml = "1"
directories = "6"
trash = "5"
nucleo-matcher = "0.3"
ignore = "0.4"
grep-searcher = "0.1"
grep-regex = "0.1"
grep-matcher = "0.1"
# TUI-only
ratatui = "0.30"
crossterm = "0.29"
arboard = "3"
unicode-width = "0.2"
# iced-client-only
iced = { version = "0.14", features = ["tokio", "advanced", "markdown", "image", "svg"] }
# Remote images in the markdown reading view: a small blocking
# HTTP client (rustls), run under spawn_blocking from the fetch task.
ureq = "2"
# macOS "Open With" (crates/aether-iced/src/mac_open.rs): Finder delivers a chosen file as an
# Apple event, so the GUI has to register an `NSApplicationDelegate` to receive it. These are the
# 0.6/0.3 generation, already in the tree via iced's own deps (arboard, mundy); winit uses the
# older 0.5/0.2 pair alongside, which is fine — they are the same Objective-C classes either way.
# Only the AppKit/Foundation pieces the delegate names are enabled.
objc2 = "0.6"
objc2-app-kit = { version = "0.3", default-features = false, features = ["std", "NSApplication", "NSResponder"] }
objc2-foundation = { version = "0.3", default-features = false, features = ["std", "NSArray", "NSEnumerator", "NSObject", "NSString", "NSURL"] }