# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "retia"
version = "0.1.1"
authors = [
    "Ziyang Hu",
    "Aditya Kresna",
]
build = false
exclude = ["tests/*"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A general-purpose, transactional, relational database that uses Datalog and focuses on graph data and algorithms. Rust-only fork of CozoDB."
homepage = "https://flusci.org"
documentation = "https://docs.rs/retia"
readme = "README.md"
keywords = [
    "database",
    "datalog",
    "graph",
    "embedded",
    "query",
]
categories = [
    "database-implementations",
    "database",
]
license = "MPL-2.0"
repository = "https://github.com/fluminis-scientiae-oraculum/retia"

[package.metadata.docs.rs]
features = [
    "storage-sqlite",
    "graph-algo",
    "requests",
]
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
compact = [
    "minimal",
    "requests",
    "graph-algo",
]
compact-single-threaded = [
    "minimal",
    "requests",
    "graph-algo",
]
default = ["compact"]
graph-algo = [
    "graph",
    "rayon",
]
io-uring = ["retia-rocks?/io-uring"]
jemalloc = [
    "dep:tikv-jemallocator-global",
    "retia-rocks?/jemalloc",
]
minimal = [
    "storage-sqlite",
    "storage-sqlite-src",
]
requests = ["dep:minreq"]
storage-new-rocksdb = ["dep:rocksdb"]
storage-rocksdb = ["dep:retia-rocks"]
storage-sqlite = ["dep:sqlite"]
storage-sqlite-src = [
    "dep:sqlite3-src",
    "sqlite3-src/bundled",
]
wasm = [
    "uuid/js",
    "dep:js-sys",
]

[lib]
name = "retia"
path = "src/lib.rs"

[[bench]]
name = "pokec"
path = "benches/pokec.rs"

[[bench]]
name = "time_travel"
path = "benches/time_travel.rs"

[[bench]]
name = "wiki_pagerank"
path = "benches/wiki_pagerank.rs"

[dependencies.aho-corasick]
version = "1.1.3"

[dependencies.approx]
version = "0.5.1"

[dependencies.base64]
version = "0.22.0"

[dependencies.byteorder]
version = "1.5.0"

[dependencies.casey]
version = "0.4.0"

[dependencies.chrono]
version = "0.4.38"

[dependencies.chrono-tz]
version = "0.10"

[dependencies.crossbeam]
version = "0.8.4"

[dependencies.csv]
version = "1.3.0"

[dependencies.document-features]
version = "0.2.8"

[dependencies.either]
version = "1.11.0"

[dependencies.env_logger]
version = "0.11.3"

[dependencies.fast2s]
version = "0.3.1"

[dependencies.graph]
version = "0.3.3"
optional = true
package = "fso-graph"

[dependencies.itertools]
version = "0.14"

[dependencies.jieba-rs]
version = "0.10"

[dependencies.js-sys]
version = "0.3.60"
optional = true

[dependencies.lazy_static]
version = "1.4.0"

[dependencies.log]
version = "0.4.21"

[dependencies.miette]
version = "7"
features = ["fancy"]

[dependencies.minreq]
version = "3.0.0-rc.1"
features = ["https-rustls"]
optional = true

[dependencies.ndarray]
version = "0.17"
features = ["serde"]

[dependencies.num-traits]
version = "0.2.18"

[dependencies.ordered-float]
version = "5"

[dependencies.pest]
version = "2.7.9"

[dependencies.pest_derive]
version = "2.7.9"

[dependencies.priority-queue]
version = "2"

[dependencies.quadrature]
version = "0.1.2"

[dependencies.rand]
version = "0.10"

[dependencies.rayon]
version = "1"
optional = true

[dependencies.regex]
version = "1.10.4"

[dependencies.retia-rocks]
version = "0.1.1"
optional = true

[dependencies.rmp]
version = "0.8.14"

[dependencies.rmp-serde]
version = "1.2.0"

[dependencies.rmpv]
version = "1.0.2"

[dependencies.rocksdb]
version = "0.24"
optional = true

[dependencies.rust-stemmers]
version = "1.2.0"

[dependencies.rustc-hash]
version = "2"

[dependencies.serde]
version = "1.0.199"

[dependencies.serde_bytes]
version = "0.11.14"

[dependencies.serde_derive]
version = "1.0.199"

[dependencies.serde_json]
version = "1.0.116"

[dependencies.sha2]
version = "0.10"

[dependencies.smallvec]
version = "1.13.2"
features = [
    "serde",
    "write",
    "union",
    "const_generics",
    "const_new",
]

[dependencies.smartstring]
version = "1.0.1"
features = ["serde"]

[dependencies.sqlite]
version = "0.37"
optional = true

[dependencies.sqlite3-src]
version = "0.7"
optional = true

[dependencies.swapvec]
version = "0.4"

[dependencies.thiserror]
version = "2"

[dependencies.tikv-jemallocator-global]
version = "0.7"
optional = true

[dependencies.twox-hash]
version = "2"

[dependencies.unicode-normalization]
version = "0.1.23"

[dependencies.uuid]
version = "1"
features = [
    "v1",
    "v4",
    "v7",
    "serde",
]

[dev-dependencies.tempfile]
version = "3.14.0"

[lints.clippy]
cloned_ref_to_slice_refs = "allow"
collapsible_if = "allow"
collapsible_match = "allow"
explicit_into_iter_loop = "allow"
get_first = "allow"
len_zero = "allow"
manual_repeat_n = "allow"
manual_unwrap_or_default = "allow"
mutable_key_type = "allow"
needless_borrow = "allow"
needless_borrows_for_generic_args = "allow"
too_many_arguments = "allow"
type_complexity = "allow"
unnecessary_unwrap = "allow"
useless_conversion = "allow"

[lints.clippy.all]
level = "deny"
priority = -1

[lints.rust]
dead_code = "allow"
mismatched_lifetime_syntaxes = "allow"
missing_docs = "allow"

[lints.rust.warnings]
level = "deny"
priority = -1
