[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 = { version = "1.35.1", 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 = { version = "0.11.23", default-features = false, 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.1.0" } dotenvy = "0.15.7" url = "2.5.0" brotli = "3.4.0" evmap.workspace = true dashmap.workspace = true async-stream.workspace = true futures.workspace = true # collab collab = { version = "0.1.0", features = ["async-plugin"] } collab-entity = { version = "0.1.0" } #Local crate token = { path = "libs/token" } snowflake = { path = "libs/snowflake" } realtime = { path = "libs/realtime" } database = { path = "libs/database" } 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 } realtime-entity.workspace = true [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", "disable_multi_msg_merge"] } opener = "0.6.1" image = "0.23.14" collab-folder = { version = "0.1.0" } 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/token", "libs/snowflake", "libs/realtime", "libs/realtime-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/realtime-protocol", "libs/websocket", "libs/client-api-test-util", "libs/wasm-test", ] [workspace.dependencies] realtime-entity = { path = "libs/realtime-entity" } realtime-protocol = { path = "libs/realtime-protocol" } database-entity = { path = "libs/database-entity" } shared-entity = { path = "libs/shared-entity" } app-error = { path = "libs/app_error" } 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.35", features = ["sync"] } yrs = "0.17.2" bincode = "1.3.3" websocket = { path = "libs/websocket" } collab = { version = "0.1.0" } collab-folder = { version = "0.1.0" } tracing = { version = "0.1"} collab-entity = { version = "0.1.0" } gotrue = { path = "libs/gotrue" } redis = "0.24.0" evmap = "10.0.2" dashmap = "5.5.3" futures = "0.3.30" async-stream = "0.3.5" [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 = "0f8a8443b7368b7872add5128fabd45ef80ebba8" } collab-entity = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "0f8a8443b7368b7872add5128fabd45ef80ebba8" } collab-folder = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "0f8a8443b7368b7872add5128fabd45ef80ebba8" } collab-document = { git = "https://github.com/AppFlowy-IO/AppFlowy-Collab", rev = "0f8a8443b7368b7872add5128fabd45ef80ebba8" } [features] custom_env= [] # This feature will be removed once the cpu spike issue is resolved disable_access_control = [] # 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" }