[package]
name = "backend"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
actix = "0.12"
#actix-web = "3"
#actix-http = "2.2.1"
#actix-web-actors = "3"
actix-codec = "0.4"
actix-web = "4.0.0-beta.8"
actix-http = "3.0.0-beta.8"
actix-rt = "2"
actix-web-actors = { version = "4.0.0-beta.6" }
actix-service = "2.0.0-beta.5"
actix-identity = "0.4.0-beta.2"
actix-cors = "0.6.0-beta.2"

futures = "0.3.15"
bytes = "1"
toml = "0.5.8"
dashmap = "4.0"
log = "0.4.14"

# tracing
tracing = { version = "0.1", features = ["log"] }
tracing-futures = "0.2.4"
tracing-subscriber = { version = "0.2.12", features = ["registry", "env-filter", "ansi", "json"] }
tracing-bunyan-formatter = "0.2.2"
tracing-appender = "0.1"
tracing-core = "0.1"
tracing-log = { version = "0.1.1"}

# serde
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_repr = "0.1"
serde-aux = "1.0.1"


derive_more = {version = "0.99"}
protobuf = {version = "2.20.0"}
uuid = { version = "0.8", features = ["serde", "v4"] }
config = { version = "0.10.1", default-features = false, features = ["yaml"] }
chrono = { version = "0.4", features = ["serde"] }
anyhow = "1.0.40"
thiserror = "1.0.24"
bcrypt = "0.10"
jsonwebtoken = "7.2"
sql-builder = "3.1.1"
lazy_static = "1.4"
tokio = { version = "1", features = ["full"] }
parking_lot = "0.11"
md5 = "0.7.0"
futures-core = { version = "0.3", default-features = false }
pin-project = "1.0.0"
byteorder = {version = "1.3.4"}
async-stream = "0.3.2"

flowy-user-infra = { path = "../rust-lib/flowy-user-infra" }
flowy-workspace-infra = { path = "../rust-lib/flowy-workspace-infra" }
flowy-document-infra = { path = "../rust-lib/flowy-document-infra" }
flowy-document = { path = "../rust-lib/flowy-document" }
flowy-ws = { path = "../rust-lib/flowy-ws" }
flowy-ot = { path = "../rust-lib/flowy-ot" }
flowy-net = { path = "../rust-lib/flowy-net", features = ["http_server"] }

ormx = { version = "0.7", features = ["postgres"]}
[dependencies.sqlx]
version = "0.5.6"
default-features = false
features = [
    "runtime-actix-rustls",
    "macros",
    "postgres",
    "uuid",
    "chrono",
    "migrate",
    "offline",
    "any",
]


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

[[bin]]
name = "backend"
path = "src/main.rs"

[features]
flowy_test = []
ignore_auth = []

[dev-dependencies]
parking_lot = "0.11"
once_cell = "1.7.2"
linkify = "0.5.0"
backend = { path = ".", features = ["flowy_test"]}
flowy-backend-api = { path = "../rust-lib/flowy-backend-api"}
flowy-sdk = { path = "../rust-lib/flowy-sdk", features = ["http_server"] }
flowy-user = { path = "../rust-lib/flowy-user", features = ["http_server"] }
flowy-document = { path = "../rust-lib/flowy-document", features = ["flowy_test", "http_server"] }

flowy-ws = { path = "../rust-lib/flowy-ws" }
flowy-test = { path = "../rust-lib/flowy-test" }
flowy-infra = { path = "../rust-lib/flowy-infra" }
flowy-ot = { path = "../rust-lib/flowy-ot" }
flowy-sqlite = { path = "../rust-lib/flowy-sqlite" }
futures-util = "0.3.15"