[package] name = "anki" build = "build/main.rs" publish = false description = "Anki's Rust library code" version.workspace = true authors.workspace = true edition.workspace = true license.workspace = true rust-version.workspace = true [lib] name = "anki" path = "src/lib.rs" [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] prost-build = "0.11.8" 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" } csv = { git = "https://github.com/ankitects/rust-csv.git", rev = "1c9d3aab6f79a7d815c69f925a46a4590c115f90" } percent-encoding = { git = "https://github.com/ankitects/rust-url.git", rev = "06a87b6c31c7e9a856a3fb058cb30b204c05b650" } # 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"]