-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathCargo.toml
210 lines (188 loc) · 5.64 KB
/
Cargo.toml
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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
[workspace]
members = [
".",
"xtask",
]
[package]
name = "inlyne"
version = "0.5.0-dev"
description = "Introducing Inlyne, a GPU powered yet browserless tool to help you quickly view markdown files in the blink of an eye."
edition = "2021"
authors = [
"trimental",
"Cosmic <[email protected]>",
]
license = "MIT"
repository = "https://github.com/Inlyne-Project/inlyne"
rust-version = "1.81.0"
exclude = [
"/ci/*",
"/.github/*",
"/assets/manual_test_data/*",
"/typos.toml",
]
keywords = ["markdown", "viewer", "gpu"]
categories = ["gui"]
[features]
default = ["wayland", "x11"]
x11 = ["copypasta/x11", "winit/x11"]
wayland = ["copypasta/wayland", "winit/wayland"]
[dependencies]
# `anstream` and `anstyle` are both terminal helper crates used for our custom
# panic hook (and already used by `clap`, so it's a "free" dependency)
anstream = "0.6.17"
anstyle = "1.0.9"
# Easier error handling
anyhow = "1.0.91"
# System preferred color scheme detection
dark-light = "1.1.1"
# System specific directories
dirs = "5.0.1"
# Used to open the config file with `$ inlyne config open`
edit = "0.1.5"
# Faster hash for the text cache
fxhash = "0.2.1"
# GPU text rendering
glyphon = "0.3"
# Used to values used in YAML frontmatter when converting to HTML
html-escape = "0.2.13"
# Parsing the HTML document that the markdown+html was converted into
html5ever = "0.27.0"
# Provides some extra helpers that we use for our custom panic hook
human-panic = "2.0.0"
# Generic image decoding
image = "0.25.4"
# 2D GPU graphics rendering
lyon = "1.0.1"
# Images are compressed to in-memory lz4 blobs
lz4_flex = "0.11.3"
# Generic metrics facade for our metrics recording/emission infra
metrics = "0.24.0"
# File event notifications for the live reloading feature
notify = "6.1.1"
once_cell = "1.20.2"
# Used to open external links like in the user's browser
open = "5.3.0"
# Some alternative atomics that are slightly more ergonoics than `std`'s
parking_lot = "0.12.3"
# Dead simple way to handle some async operations
pollster = "0.4.0"
# Used to get a handle to the display, so that we can setup a clipboard
raw-window-handle = "0.5.2"
# SVG rendering
resvg = "0.39.0"
# Parses the optional YAML frontmatter (replace with just a yaml parser)
serde_yaml = "0.9.34"
# Easy `Debug` formatting changes used to keep snapshot tests more succinct
smart-debug = "0.0.3"
# Helps power our syntax highlighting
syntect = "5.2.0"
# Some CSS layout algos that we use as a pretty decent alternative to us
# lacking HTML ones
taffy = "0.3.19"
# For parsing our config file
toml = "0.8.19"
# In application tracing (aka logging on steroids)
tracing = "0.1.40"
# Extra syntax and theme definitions for `syntect`
two-face = "0.4.0"
# More text hashing...
twox-hash = "1.6.3"
# HTTP client for requesting images from urls
ureq = "2.10.1"
# Cross platform GPU magic sauce
wgpu = "0.16"
# Used for casting types to GPU compatible formats
[dependencies.bytemuck]
version = "1.19.0"
features = ["derive"]
# Command line arg parsing
[dependencies.clap]
version = "4.4.18"
features = ["cargo", "derive"]
# Converts our markdown+html to pure HTML
[dependencies.comrak]
version = "0.29.0"
default-features = false
features = ["shortcodes", "syntect"]
# Clipboard handling
[dependencies.copypasta]
version = "0.10.1"
default-features = false
# NOTE: We need `fontconfig` enabled to pick up fonts on some systems, but
# `glyphon` doesn't provide any way set that feature for `fontdb`, so we have to
# set the feature for the transitive dep while manually making sure that we keep
# the versions in sync ;-;
[dependencies.fontdb]
version = "0.14.1"
features = ["fontconfig"]
# Common dep used from yaml that can probably be replaced with a `Vec<(_, _)>`
[dependencies.indexmap]
version = "2.6.0"
features = ["serde"]
# Metrics helpers used for our custom metric logger
[dependencies.metrics-util]
version = "0.18.0"
default-features = false
features = ["registry", "summary"]
# Debouncer that papers over some issues with various ways that editors save
# files
[dependencies.notify-debouncer-full]
version = "0.3.2"
default-features = false
# For dealing with both TOML and YAML
[dependencies.serde]
version = "1.0.214"
features = ["derive"]
# Common dep used by `html5ever`
[dependencies.string_cache]
version = "0.8.7"
default-features = false
# Our specific tracing implementation
[dependencies.tracing-subscriber]
version = "0.3.18"
features = ["env-filter"]
# Cross-platform window handling
[dependencies.winit]
version = "0.28.7"
default-features = false
[dev-dependencies]
# Succinct and more readable binary blobs
base64 = "0.22.1"
# Used to update file's modified time for tests
filetime = "0.2.25"
# Snapshot testing
insta = "1.41.0"
# Assertions displayed as diffs which is immensely helpful for some of our large
# values
pretty_assertions = "1.4.1"
# Throwaway files/dirs for isolated test environments
tempfile = "3.13.0"
# Use for setting up a local http server to test image requests in isolation
tiny_http = "0.12.0"
[target.'cfg(inlyne_tcp_metrics)'.dependencies]
metrics-exporter-tcp = "0.11.0"
[profile.release]
strip = true
# Run `cargo run/build --profile release-debug` to use
[profile.release-debug]
inherits = "release"
strip = false
debug = true
[profile.release-lto]
inherits = "release"
lto = true
# Selectively bump up opt level for some dependencies to improve dev build perf
[profile.dev.package]
ttf-parser.opt-level = 2
rustybuzz.opt-level = 2
cosmic-text.opt-level = 2
png.opt-level = 2
fontdb.opt-level = 2
miniz_oxide.opt-level = 2
backtrace.opt-level = 2
[lints.rust.unexpected_cfgs]
level = "warn"
# We have a custom cfg you can use to enable emitting our metrics using
# `tcp-metrics`
check-cfg = ["cfg(inlyne_tcp_metrics)"]