-
Notifications
You must be signed in to change notification settings - Fork 36
/
Cargo.toml
208 lines (193 loc) · 6.48 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
[workspace]
members = [
"clift",
"fastn",
"fastn-core",
"fastn-ds",
"fastn-expr",
"fastn-issues",
"fastn-js",
"fastn-lang",
"fastn-package",
"fastn-type",
"fastn-update",
"fastn-utils",
"fbt",
"fbt_lib",
"foo",
"ftd",
"ftd-ast",
"ftd-p1",
"ftd-tc",
"t",
# "fastn-wasm",
# "fastn-runtime",
]
exclude = ["fastn-runtime", "fastn-wasm", "integration-tests/wasm", "v0.5"]
resolver = "2"
[workspace.package]
authors = [
"Amit Upadhyay <[email protected]>",
"Arpita Jaiswal <[email protected]>",
"Sourabh Garg <[email protected]>",
"Shobhit Sharma <[email protected]>",
"Abrar Khan <[email protected]>",
"Rithik Seth <[email protected]>",
"Ganesh Salunke <[email protected]>",
]
edition = "2021"
description = "fastn: Full-stack Web Development Made Easy"
license = "AGPL-3"
repository = "https://github.com/fastn-stack/fastn"
homepage = "https://fastn.com"
[profile.release]
# Enabling this descreased our binary size from 30M to 27M on linux (as of 12th Jun 2023).
# The build time went up (no objective data). Disabling it for now. It made a huge difference
# in fastn-runtime wasm size (without lto: 2.1M with lto: 518K).
strip = true
# lto = true
# opt-level = "z"
# panic = "abort"
[workspace.dependencies]
# Please do not specify a dependency more precisely than needed. If version "1" works, do
# not specify "1.1.42". This reduces the number of total dependencies. For example, if you
# specify 1.1.42 and someone else who only needed "1" also specified 1.1.37, we end up having
# the same dependency getting compiled twice.
#
# In the future, we may discover that our code does not indeed work with "1", say it ony works
# for 1.1 onwards, or 1.1.25 onwards, in which case use >= 1.1.25 etc. Saying our code
# only works for 1.1.42 and not 1.1.41 nor 1.1.43 is really weird, and most likely wrong.
#
# If you are not using the latest version intentionally, please do not list it in this section
# and create its own [dependencies.<name>] section. Also, document it with why are you not
# using the latest dependency, and what is the plan to move to the latest version.
accept-language = "3"
actix-web = "4"
actix-http = "3"
antidote = "1"
clift.path = "clift"
dirs = "5"
deadpool-postgres = "0.12"
deadpool = "0.10"
tokio-postgres = { version = "0.7", features = ["with-serde_json-1", "with-uuid-1"] }
postgres-types = "0.2"
async-lock = "3"
async-recursion = "1"
async-trait = "0.1"
camino = "1"
clap = "4"
colored = "2"
css-color-parser = "0.1"
diffy = "0.4"
dotenvy = "0.15"
env_logger = "0.11"
enum-iterator = "0.6"
enum-iterator-derive = "0.6"
fastn-ds.path = "fastn-ds"
fastn-update.path = "fastn-update"
fastn-type.path = "fastn-type"
fastn-core.path = "fastn-core"
fastn-issues.path = "fastn-issues"
fastn-package.path = "fastn-package"
fastn-utils.path = "fastn-utils"
fastn-runtime.path = "fastn-runtime"
fastn-wasm.path = "fastn-wasm"
fbt-lib.path = "fbt_lib"
fastn-expr.path = "fastn-expr"
format_num = "0.1"
ftd.path = "ftd"
ftd-p1.path = "ftd-p1"
ftd-tc.path = "ftd-tc"
ftd-ast.path = "ftd-ast"
fastn-js.path = "fastn-js"
ft-sys-shared = "0.1.4"
futures = "0.3"
futures-util = { version = "0.3", default-features = false, features = ["std"] }
futures-core = "0.3"
ignore = "0.4"
include_dir = "0.7"
indoc = "2"
itertools = "0.13"
http = "1"
bytes = "1"
log = "0.4"
magic-crypt = { version = "3", default-features = false }
mime_guess = "2"
once_cell = "1"
pretty = "0.12"
pretty_assertions = "1"
rand = "0.8"
realm-lang = "0.1"
regex = "1"
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
sha2 = "0.10"
slug = "0.1"
thiserror = "1"
tokio = { version = "1", features = ["full"] }
tracing = "0.1"
tracing-subscriber = "0.3"
scc = "2"
url = "2"
walkdir = "2"
smallvec = "1"
wasmtime = "26"
zip = "2"
prettify-js = "0.1.0"
indexmap = { version = "2", features = ["serde"] }
chrono = { version = "0.4", features = ["serde"] }
indicatif = "0.17"
snafu = "0.8"
rquickjs = { version = "0.6", features = ["macro"] }
quick-js = "0.4"
[workspace.dependencies.fastn-observer]
git = "https://github.com/fastn-stack/fastn-observer"
rev = "5f64c7b"
[workspace.dependencies.libsqlite3-sys]
# this should be synced with whatever rusqlite uses
version = "0.28.0"
[workspace.dependencies.rusqlite]
version = "0.31"
features = [
# We are using the bundled version of rusqlite, so we do not need sqlitelib, headers as a
# dependency. By default, if we do not bundle, our binary will link against system
# provided sqlite, which would have been a good thing, if we used system sqlite, our
# binary size would be smaller, compile time lesser, but unfortunately we can not assume
# sqlite dynamic library is installed on everyone's machine. We can choose to give two
# binaries, one with bundled, one without, but it is not worth the tradeoff right now.
"bundled",
"column_decltype",
]
[workspace.dependencies.hyper]
version = "1"
default-features = false
features = ["http1", "server"]
[workspace.dependencies.syntect]
# We use syntect for syntax highlighting feature in ftd.code.
version = "5"
# By default, syntect uses https://docs.rs/onig/. Rust has two popular regular expression
# crates, `regex` and `onig`. `onig` is a wrapper over a library implemented in C:
# https://github.com/kkos/oniguruma. https://docs.rs/regex/ is a pure Rust implementation.
#
# We are using `regex` ourselves. `comrak` also uses `regex`. So we disable their default
# feature (which brought in onig), and use `default-fancy`, which uses `fancy-regex`, which
# in turn uses `regex`.
default-features = false
features = [
# TODO: This feature brings in a lot of feaures, we have to pare it down to exactly
# the features we need.
"default-fancy"
]
[workspace.dependencies.comrak]
# We use comrak for markup processing.
version = "0.24"
# By default, comrak ships with support for syntax highlighting using syntext for "fenced
# code blocks". We have disabled that by not using default features. We did that because
# we already have a way to show code in ftd, ftd.code. Further, comark requires syntect 4.6,
# and we are using 5, which means we have two sytnax highlighting libraries.
#
# Further, in future we'll have to manipulate the markup at AST level, instead of using the
# to_string() interface. https://fpm.dev/journal/#markdown-styling. So in the meanwhile
# we are disabling their conflicting syntect implementation.
default-features = false