[package] name = "appflowy-cloud" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] actix = "0.13.3" actix-web = { version = "4.5.1", default-features = false, features = ["openssl", "compress-brotli", "compress-gzip"] } actix-http = { workspace = true, default-features = false, features = ["openssl", "compress-brotli", "compress-gzip"] } actix-rt = "2.9.0" actix-web-actors = { version = "4.3" } actix-service = "2.0.2" actix-identity = "0.6.0" actix-router = "0.5.2" actix-session = { version = "0.8", features = ["redis-rs-tls-session"] } openssl = { version = "0.10.62", features = ["vendored"] } # serde serde_json.workspace = true serde.workspace = true tokio = { workspace = true, features = [ "macros", "rt-multi-thread", "sync", "fs", "time", ] } tokio-stream.workspace = true tokio-util = { version = "0.7.10", features = ["io"] } futures-util = { workspace = true, features = ["std", "io"] } once_cell = "1.19.0" chrono = { version = "0.4.37", features = ["serde", "clock"], default-features = false } derive_more = { version = "0.99" } argon2 = { version = "0.5", features = ["std"] } secrecy = { version = "0.8", features = ["serde"] } rand = { version = "0.8", features = ["std_rng"] } anyhow = "1.0.79" thiserror = "1.0.56" reqwest = { workspace = true, features = ["json", "rustls-tls", "cookies"] } unicode-segmentation = "1.10" lazy_static.workspace = true fancy-regex = "0.11.0" validator = "0.16.1" bytes = "1.5.0" rcgen = { version = "0.10.0", features = ["pem", "x509-parser"] } mime = "0.3.17" rust-s3 = { version = "0.33.0", default-features = false, features = ["tokio-rustls-tls", "with-tokio", "no-verify-ssl"] } redis = { workspace = true, features = ["json", "tokio-comp", "connection-manager"] } tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["registry", "env-filter", "ansi", "json"] } tracing-bunyan-formatter = "0.3.9" tracing-log = "0.1.4" sqlx = { workspace = true, default-features = false, features = ["runtime-tokio-rustls", "macros", "postgres", "uuid", "chrono", "migrate"] } async-trait.workspace = true prometheus-client.workspace = true itertools = "0.11" uuid = "1.6.1" tokio-tungstenite = { version = "0.20.1", features = ["native-tls"] } dotenvy = "0.15.7" url = "2.5.0" brotli = "3.4.0" dashmap.workspace = true async-stream.workspace = true futures.workspace = true semver = "1.0.22" governor = { version = "0.6.3" } tonic.workspace = true prost.workspace = true tonic-proto.workspace = true # collab collab = { version = "0.1.0" } collab-document = { version = "0.1.0" } collab-folder = { version = "0.1.0" } collab-entity = { version = "0.1.0" } #Local crate snowflake = { path = "libs/snowflake" } database.workspace = true appflowy-ai = { path = "libs/appflowy-ai" } database-entity.workspace = true gotrue = { path = "libs/gotrue" } gotrue-entity = { path = "libs/gotrue-entity" } infra = { path = "libs/infra" } access-control.workspace = true app-error = { workspace = true, features = ["sqlx_error", "actix_web_error", "tokio_error"] } shared-entity = { path = "libs/shared-entity", features = ["cloud"] } workspace-template = { workspace = true } collab-rt-entity.workspace = true collab-stream.workspace = true collab-rt.workspace = true serde_repr = "0.1.18" tonic-build = "0.11.0" log = "0.4.20" [dev-dependencies] once_cell = "1.19.0" tempfile = "3.9.0" assert-json-diff = "2.0.2" scraper = "0.17.1" client-api-test-util = { path = "libs/client-api-test-util", features = ["collab-sync"] } client-api = { path = "libs/client-api", features = ["collab-sync", "test_util", "sync_verbose_log", "test_fast_sync", "enable_brotli"] } opener = "0.6.1" image = "0.23.14" collab-folder = { version = "0.1.0" } client-websocket.workspace = true actix-test = "0.1" semver = "1.0.22" [[bin]] name = "appflowy_cloud" path = "src/main.rs" [lib] path = "src/lib.rs" #[[bench]] #name = "access_control_benchmark" #harness = false [workspace] members = [ # libs "libs/snowflake", "libs/collab-rt-entity", "libs/database", "libs/database-entity", "libs/client-api", "libs/infra", "libs/shared-entity", "libs/gotrue", "libs/gotrue-entity", "admin_frontend", "libs/app-error", "libs/workspace-template", "libs/encrypt", "libs/access-control", "libs/collab-rt-protocol", "libs/collab-stream", "libs/client-websocket", "libs/client-api-test-util", "libs/wasm-test", "libs/appflowy-ai", "libs/collab-rt", "libs/client-api-wasm", # services "services/appflowy-history", "services/realtime", # xtask "xtask", "libs/tonic-proto", ] [workspace.dependencies] collab-rt-entity = { path = "libs/collab-rt-entity" } collab-rt-protocol = { path = "libs/collab-rt-protocol" } database = { path = "libs/database" } database-entity = { path = "libs/database-entity" } shared-entity = { path = "libs/shared-entity" } access-control = { path = "libs/access-control" } app-error = { path = "libs/app-error" } async-trait = "0.1.77" prometheus-client = "0.22.0" collab-stream = { path = "libs/collab-stream" } serde_json = "1.0.111" serde = { version = "1.0.195", features = ["derive"] } bytes = "1.5.0" workspace-template = { path = "libs/workspace-template" } uuid = { version = "1.6.1", features = ["v4"] } anyhow = "1.0.79" actix-http = { version = "3.6.0", default-features = false } tokio = { version = "1.36.0", features = ["sync"] } tokio-stream = "0.1.14" futures-util = "0.3.30" yrs = "0.17.2" bincode = "1.3.3" client-websocket = { path = "libs/client-websocket" } collab = { version = "0.1.0" } collab-folder = { version = "0.1.0" } collab-document = { version = "0.1.0" } collab-entity = { version = "0.1.0" } infra = { path = "libs/infra" } tracing = { version = "0.1.40" } gotrue = { path = "libs/gotrue" } redis = "0.25.2" sqlx = { version = "0.7.4", default-features = false } dashmap = "5.5.3" futures = "0.3.30" async-stream = "0.3.5" reqwest = "0.11.27" collab-rt = { path = "libs/collab-rt", features = ["collab-rt-multi-thread"] } lazy_static = "1.4.0" tonic = "0.11" prost = "0.12" tonic-proto = { path = "libs/tonic-proto" } [profile.release] lto = true opt-level = 3 codegen-units = 1 [profile.profiling] inherits = "release" debug = true [patch.crates-io] # will be removed when using yrs 0.18.2 that expose pendings yrs = { git = "https://github.com/appflowy/y-crdt", rev = "3f25bb510ca5274e7657d3713fbed41fb46b4487" } collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "3f7bc378af0ee5ca4e25e4746acaa66fab6df79f" } collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "3f7bc378af0ee5ca4e25e4746acaa66fab6df79f" } collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "3f7bc378af0ee5ca4e25e4746acaa66fab6df79f" } collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "3f7bc378af0ee5ca4e25e4746acaa66fab6df79f" } [features] ai_enable = [] history = []