[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.4.1", default-features = false, features = ["openssl", "compress-brotli", "compress-gzip"] } actix-http = { version = "3.5.1", default-features = false, features = ["openssl", "compress-brotli", "compress-gzip"] } actix-rt = "2.9.0" actix-web-actors = { version = "4.2.0" } 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 = "0.1.14" tokio-util = { version = "0.7.10", features = ["io"] } futures-util ={ version = "0.3.30" , features = ["std","io"] } once_cell = "1.19.0" chrono = { version = "0.4.31", 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 = "1.4.0" 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 = { version = "0.7", default-features = false, features = ["runtime-tokio-rustls", "macros", "postgres", "uuid", "chrono", "migrate"] } async-trait = "0.1.77" prometheus-client = "0.22.0" itertools = "0.11" uuid = "1.6.1" tokio-tungstenite = { version = "0.20.1", features = ["native-tls"] } prost = "0.12.3" casbin = { version = "2.2.0", features = ["cached", "runtime-tokio", "incremental"] } 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" # collab collab = { version = "0.1.0", features = ["async-plugin"] } collab-entity = { version = "0.1.0" } #Local crate snowflake = { path = "libs/snowflake" } database = { path = "libs/database" } appflowy-ai = { path = "libs/appflowy-ai" } database-entity.workspace = true gotrue = { path = "libs/gotrue" } gotrue-entity = { path = "libs/gotrue-entity" } infra = { path = "libs/infra" } 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" [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" } client-api = { path = "libs/client-api", features = ["collab-sync", "test_util"] } opener = "0.6.1" image = "0.23.14" collab-folder = { version = "0.1.0" } client-websocket.workspace = true #criterion = { version = "0.5", features = ["async_tokio"] } [[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/collab-rt-protocol", "libs/collab-stream", "libs/client-websocket", "libs/client-api-test-util", "libs/wasm-test", "libs/appflowy-ai", "libs/collab-rt", # services "services/collab-history", "services/realtime", ] [workspace.dependencies] collab-rt-entity = { path = "libs/collab-rt-entity" } collab-rt-protocol = { path = "libs/collab-rt-protocol" } database-entity = { path = "libs/database-entity" } shared-entity = { path = "libs/shared-entity" } app-error = { path = "libs/app-error" } 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" tokio = { version = "1.36.0", features = ["sync"] } 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" } tracing = { version = "0.1.40"} collab-entity = { version = "0.1.0" } gotrue = { path = "libs/gotrue" } redis = "0.25.2" dashmap = "5.5.3" futures = "0.3.30" async-stream = "0.3.5" reqwest = "0.11.26" collab-rt = { path = "libs/collab-rt" } [profile.release] lto = true opt-level = 3 codegen-units = 1 [profile.profiling] inherits = "release" debug = true [patch.crates-io] collab = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "0970b2e1440134af7c83bb8fc80cac5d2dedebb7" } collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "0970b2e1440134af7c83bb8fc80cac5d2dedebb7" } collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "0970b2e1440134af7c83bb8fc80cac5d2dedebb7" } collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "0970b2e1440134af7c83bb8fc80cac5d2dedebb7" } [features] custom_env= [] ai_enable = [] # Comment the above and uncomment the below to use local version of collab by cloning the repo and placing it in libs folder #collab = { path = "libs/AppFlowy-Collab/collab" } #collab-entity = { path = "libs/AppFlowy-Collab/collab-define" }