Anki/Cargo.toml
Damien Elmes 40e1520acb Drop workspace-hack in favor of workspace deps
Workspace deps were introduced in Rust 1.64. They don't cover all the
cases that Hakari did unfortunately, but they are simpler to maintain,
and they avoid a couple of issues that Hakari had:

- It sometimes made updating dependencies harder due to the locked versions,
so you had to disable Hakari, do the updates, and then re-generate (
e.g. 943dddf28f)
- The current Hakari config was breaking AnkiDroid's build, as it was
stopping a cross-compile from functioning correctly.
2023-06-23 17:41:31 +10:00

157 lines
4.6 KiB
TOML

[workspace.package]
version = "0.0.0"
authors = ["Ankitects Pty Ltd and contributors <https://help.ankiweb.net>"]
license = "AGPL-3.0-or-later"
rust-version = "1.65"
edition = "2021"
[workspace]
members = [
"rslib",
"rslib/i18n",
"rslib/i18n_helpers",
"rslib/linkchecker",
"rslib/proto",
"rslib/io",
"rslib/process",
"pylib/rsbridge",
"build/configure",
"build/ninja_gen",
"build/archives",
"build/runner",
"ftl",
"tools/minilints",
"qt/bundle/win",
"qt/bundle/mac",
]
exclude = ["qt/bundle"]
resolver = "2"
[workspace.dependencies]
# local
anki = { path = "rslib" }
anki_i18n = { path = "rslib/i18n" }
anki_io = { path = "rslib/io" }
anki_proto = { path = "rslib/proto" }
anki_process = { path = "rslib/process" }
anki_proto_gen = { path = "rslib/proto_gen" }
ninja_gen = { "path" = "build/ninja_gen" }
# forked
csv = { git = "https://github.com/ankitects/rust-csv.git", rev = "1c9d3aab6f79a7d815c69f925a46a4590c115f90" }
percent-encoding-iri = { git = "https://github.com/ankitects/rust-url.git", rev = "bb930b8d089f4d30d7d19c12e54e66191de47b88" }
linkcheck = { git = "https://github.com/ankitects/linkcheck.git", rev = "184b2ca50ed39ca43da13f0b830a463861adb9ca" }
# pinned
unicase = "=2.6.0" # any changes could invalidate sqlite indexes
# normal
ammonia = "3.3.0"
anyhow = "1.0.71"
apple-bundles = "0.17.0"
async-compression = { version = "0.3.15", features = ["zstd", "tokio"] }
async-stream = "0.3.4"
async-trait = "0.1.68"
axum = { version = "0.6.12", features = ["multipart", "macros", "headers"] }
axum-client-ip = "0.3.1"
blake3 = "1.3.3"
bytes = "1.4.0"
camino = "1.1.4"
chrono = { version = "0.4.26", default-features = false, features = ["std", "clock"] }
clap = { version = "4.2.1", features = ["derive"] }
coarsetime = "0.1.23"
convert_case = "0.6.0"
criterion = { version = "0.4.0" }
difflib = "0.4.0"
env_logger = "0.10.0"
flate2 = "1.0.25"
fluent = "0.16.0"
fluent-bundle = "0.15.2"
fluent-syntax = "0.11.0"
fnv = "1.0.7"
futures = "0.3.28"
glob = "0.3.1"
globset = "0.4.10"
hex = "0.4.3"
htmlescape = "0.3.1"
hyper = "0.14.25"
id_tree = "1.8.0"
inflections = "1.1.1"
intl-memoizer = "0.5.1"
itertools = "0.10.5"
junction = "1.0.0"
lazy_static = "1.4.0"
maplit = "1.0.2"
nom = "7.1.3"
num-format = "0.4.4"
num_cpus = "1.15.0"
num_enum = "0.6.1"
once_cell = "1.17.1"
phf = { version = "0.11.1", features = ["macros"] }
pin-project = "1.0.12"
plist = "1.4.3"
prettyplease = "0.2.7"
prost = "0.11.8"
prost-build = "0.11.9"
prost-reflect = "0.11.4"
prost-types = "0.11.9"
pulldown-cmark = "0.9.2"
pyo3 = { version = "0.18.2", features = ["extension-module", "abi3", "abi3-py39"] }
rand = "0.8.5"
regex = "1.7.3"
reqwest = { version = "0.11.16", default-features = false, features = ["json", "socks", "stream", "multipart"] }
rusqlite = { version = "0.29.0", features = ["trace", "functions", "collation", "bundled"] }
scopeguard = "1.1.0"
serde = { version = "1.0.159", features = ["derive"] }
serde-aux = "4.1.2"
serde_json = "1.0.95"
serde_repr = "0.1.12"
serde_tuple = "0.5.0"
sha1 = "0.10.5"
sha2 = { version = "0.10.6" }
simple-file-manifest = "0.11.0"
snafu = { version = "0.7.4", features = ["backtraces", "rust_1_61"] }
strum = { version = "0.24.1", features = ["derive"] }
syn = { version = "2.0.18", features = ["parsing", "printing"] }
tar = "0.4.38"
tempfile = "3.5.0"
termcolor = "1.2.0"
tokio = { version = "1.27", features = ["fs", "rt-multi-thread", "macros", "signal"] }
tokio-util = { version = "0.7.7", features = ["io"] }
tower-http = { version = "0.4.0", features = ["trace"] }
tracing = { version = "0.1.37", features = ["max_level_trace", "release_max_level_debug"] }
tracing-appender = "0.2.2"
tracing-subscriber = { version = "0.3.16", features = ["fmt", "env-filter"] }
tugger-windows-codesign = "0.10.0"
unic-langid = { version = "0.9.1", features = ["macros"] }
unic-ucd-category = "0.9.0"
unicode-normalization = "0.1.22"
utime = "0.3.1"
walkdir = "2.3.3"
which = "4.4.0"
wiremock = "0.5.17"
xz2 = "0.1.7"
zip = { version = "0.6.4", default-features = false, features = ["deflate", "time"] }
zstd = { version = "0.12.3", features = ["zstdmt"] }
# Apply mild optimizations to our dependencies in dev mode, which among other things
# improves sha2 performance by about 21x. Opt 1 chosen due to
# https://doc.rust-lang.org/cargo/reference/profiles.html#overrides-and-generics. This
# applies to the dependencies of unit tests as well.
[profile.dev.package."*"]
opt-level = 1
debug = 0
[profile.dev.package.anki_i18n]
opt-level = 1
debug = 0
[profile.dev.package.runner]
opt-level = 1
# Debug info off by default, which speeds up incremental builds and produces a considerably
# smaller library.
[profile.dev.package.anki]
debug = 0
[profile.dev.package.rsbridge]
debug = 0