anki/rslib/Cargo.toml
Damien Elmes bac05039a7 Move protobuf generation into a separate crate; write .py interface in Rust
A couple of motivations for this:

- genbackend.py was somewhat messy, and difficult to change with the
lack of types. The mobile clients used it as a base for their generation,
so improving it will make life easier for them too, once they're ported.
- It will make it easier to write a .ts generator in the future
- We currently implement a bunch of helper methods on protobuf types
which don't allow us to compile the protobuf types until we compile
the Anki crate. If we change this in the future, we will be able to
do more of the compilation up-front.

We no longer need to record the services in the proto file, as we can
extract the service order from the compiled protos. Support for map types
has also been added.
2023-06-12 09:52:00 +10:00

118 lines
3.3 KiB
TOML

[package]
name = "anki"
publish = false
description = "Anki's Rust library code"
version.workspace = true
authors.workspace = true
edition.workspace = true
license.workspace = true
rust-version.workspace = true
[features]
bench = ["criterion"]
rustls = ["reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"]
native-tls = ["reqwest/native-tls"]
[[bench]]
name = "benchmark"
harness = false
required-features = ["bench"]
# After updating anything below, run ../cargo/update_licenses.sh
[build-dependencies]
anyhow = "1.0.71"
inflections = "1.1.1"
prost = "0.11.8"
prost-build = "0.11.8"
prost-reflect = "0.11.4"
prost-types = "0.11.9"
regex = "1.7.3"
which = "4.4.0"
[dev-dependencies]
async-stream = "0.3.4"
env_logger = "0.10.0"
wiremock = "0.5.17"
[dependencies.reqwest]
version = "0.11.16"
default-features = false
features = ["json", "socks", "stream", "multipart"]
[dependencies]
anki_i18n = { path = "i18n" }
anki_proto = { path = "proto" }
csv = { git = "https://github.com/ankitects/rust-csv.git", rev = "1c9d3aab6f79a7d815c69f925a46a4590c115f90" }
percent-encoding-iri = { git = "https://github.com/ankitects/rust-url.git", rev = "bb930b8d089f4d30d7d19c12e54e66191de47b88" }
# pinned as any changes could invalidate sqlite indexes
unicase = "=2.6.0"
# keep this at 0.4.19 until an Android-compatible update is ready
chrono = { version = "0.4.19", default-features = false, features = ["std", "clock"] }
criterion = { version = "0.4.0", optional = true }
ammonia = "3.3.0"
async-compression = { version = "0.3.15", features = ["zstd", "tokio"] }
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"
coarsetime = "0.1.23"
convert_case = "0.6.0"
difflib = "0.4.0"
flate2 = "1.0.25"
fluent = "0.16.0"
fluent-bundle = "0.15.2"
fnv = "1.0.7"
futures = "0.3.28"
hex = "0.4.3"
htmlescape = "0.3.1"
hyper = "0.14.25"
id_tree = "1.8.0"
itertools = "0.10.5"
lazy_static = "1.4.0"
nom = "7.1.3"
num-integer = "0.1.45"
num_cpus = "1.15.0"
num_enum = "0.5.11"
once_cell = "1.17.1"
pin-project = "1.0.12"
prost = "0.11.8"
pulldown-cmark = "0.9.2"
rand = "0.8.5"
regex = "1.7.3"
rusqlite = { version = "0.29.0", features = ["trace", "functions", "collation", "bundled"] }
scopeguard = "1.1.0"
serde = "1.0.159"
serde-aux = "4.1.2"
serde_derive = "1.0.159"
serde_json = "1.0.95"
serde_repr = "0.1.12"
serde_tuple = "0.5.0"
sha1 = "0.10.5"
snafu = { version = "0.7.4", features = ["backtraces"] }
strum = { version = "0.24.1", features = ["derive"] }
tempfile = "3.5.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"] }
unic-ucd-category = "0.9.0"
unicode-normalization = "0.1.22"
utime = "0.3.1"
workspace-hack = { version = "0.1", path = "../tools/workspace-hack" }
zip = { version = "0.6.4", default-features = false, features = ["deflate", "time"] }
zstd = { version = "0.12.3", features = ["zstdmt"] }
[target.'cfg(windows)'.dependencies.windows]
version = "0.48.0"
features = ["Media_SpeechSynthesis", "Foundation_Collections", "Storage_Streams"]