chore: move collab rt crate (#489)
* chore: create appflowy collaborate crate * chore: remove collab-rt * chore: fmt * chore: main
This commit is contained in:
parent
842e3d14e5
commit
efbe9c4a93
|
|
@ -599,6 +599,7 @@ dependencies = [
|
|||
"anyhow",
|
||||
"app-error",
|
||||
"appflowy-ai",
|
||||
"appflowy-collaborate",
|
||||
"argon2",
|
||||
"assert-json-diff",
|
||||
"async-stream",
|
||||
|
|
@ -613,7 +614,6 @@ dependencies = [
|
|||
"collab-document",
|
||||
"collab-entity",
|
||||
"collab-folder",
|
||||
"collab-rt",
|
||||
"collab-rt-entity",
|
||||
"collab-stream",
|
||||
"dashmap",
|
||||
|
|
@ -672,6 +672,46 @@ dependencies = [
|
|||
"workspace-template",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "appflowy-collaborate"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"app-error",
|
||||
"async-stream",
|
||||
"async-trait",
|
||||
"bytes",
|
||||
"chrono",
|
||||
"collab",
|
||||
"collab-document",
|
||||
"collab-entity",
|
||||
"collab-folder",
|
||||
"collab-rt-entity",
|
||||
"collab-rt-protocol",
|
||||
"dashmap",
|
||||
"database",
|
||||
"database-entity",
|
||||
"futures",
|
||||
"futures-util",
|
||||
"indexmap 2.2.5",
|
||||
"lazy_static",
|
||||
"md5",
|
||||
"parking_lot 0.12.1",
|
||||
"prometheus-client",
|
||||
"rand 0.8.5",
|
||||
"redis 0.25.2",
|
||||
"semver",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tokio-stream",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
"uuid",
|
||||
"yrs",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "appflowy-history"
|
||||
version = "0.1.0"
|
||||
|
|
@ -1683,46 +1723,6 @@ dependencies = [
|
|||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "collab-rt"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"app-error",
|
||||
"async-stream",
|
||||
"async-trait",
|
||||
"bytes",
|
||||
"chrono",
|
||||
"collab",
|
||||
"collab-document",
|
||||
"collab-entity",
|
||||
"collab-folder",
|
||||
"collab-rt-entity",
|
||||
"collab-rt-protocol",
|
||||
"dashmap",
|
||||
"database",
|
||||
"database-entity",
|
||||
"futures",
|
||||
"futures-util",
|
||||
"indexmap 2.2.5",
|
||||
"lazy_static",
|
||||
"md5",
|
||||
"parking_lot 0.12.1",
|
||||
"prometheus-client",
|
||||
"rand 0.8.5",
|
||||
"redis 0.25.2",
|
||||
"semver",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror",
|
||||
"tokio",
|
||||
"tokio-stream",
|
||||
"tokio-util",
|
||||
"tracing",
|
||||
"uuid",
|
||||
"yrs",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "collab-rt-entity"
|
||||
version = "0.1.0"
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ governor = { version = "0.6.3" }
|
|||
tonic.workspace = true
|
||||
prost.workspace = true
|
||||
tonic-proto.workspace = true
|
||||
appflowy-collaborate = { path = "services/appflowy-collaborate", features = ["collab-rt-multi-thread"] }
|
||||
|
||||
# collab
|
||||
collab = { version = "0.1.0" }
|
||||
|
|
@ -91,7 +92,6 @@ 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"
|
||||
|
|
@ -145,11 +145,11 @@ members = [
|
|||
"libs/client-api-test-util",
|
||||
"libs/wasm-test",
|
||||
"libs/appflowy-ai",
|
||||
"libs/collab-rt",
|
||||
"libs/client-api-wasm",
|
||||
# services
|
||||
"services/appflowy-history",
|
||||
"services/realtime",
|
||||
"services/appflowy-collaborate",
|
||||
# xtask
|
||||
"xtask", "libs/tonic-proto",
|
||||
]
|
||||
|
|
@ -191,7 +191,6 @@ 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"
|
||||
|
|
|
|||
|
|
@ -1,9 +1,15 @@
|
|||
[package]
|
||||
name = "collab-rt"
|
||||
name = "appflowy-collaborate"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
[[bin]]
|
||||
name = "appflowy_collaborate"
|
||||
path = "src/main.rs"
|
||||
|
||||
[lib]
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
app-error = { workspace = true }
|
||||
|
|
@ -26,7 +32,7 @@ collab = { version = "0.1.0" }
|
|||
collab-entity = { version = "0.1.0" }
|
||||
collab-folder = { version = "0.1.0" }
|
||||
collab-document = { version = "0.1.0" }
|
||||
database = { path = "../database" }
|
||||
database.workspace = true
|
||||
database-entity.workspace = true
|
||||
yrs.workspace = true
|
||||
chrono = "0.4.31"
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
// add more logics that supports deploy appflowy-collaborate as single service
|
||||
Ok(())
|
||||
}
|
||||
|
|
@ -13,10 +13,10 @@ use actix_web::{web, Scope};
|
|||
use actix_web::{HttpRequest, Result};
|
||||
use anyhow::{anyhow, Context};
|
||||
use app_error::AppError;
|
||||
use appflowy_collaborate::data_validation::{validate_encode_collab, CollabValidator};
|
||||
use bytes::BytesMut;
|
||||
use collab::core::collab_plugin::EncodedCollab;
|
||||
use collab_entity::CollabType;
|
||||
use collab_rt::data_validation::{validate_encode_collab, CollabValidator};
|
||||
|
||||
use collab_rt_entity::realtime_proto::HttpRealtimeMessage;
|
||||
use collab_rt_entity::RealtimeMessage;
|
||||
|
|
|
|||
|
|
@ -31,8 +31,8 @@ use actix_session::SessionMiddleware;
|
|||
use actix_web::cookie::Key;
|
||||
use actix_web::{dev::Server, web, web::Data, App, HttpServer};
|
||||
use anyhow::{Context, Error};
|
||||
use collab_rt::command::{RTCommandReceiver, RTCommandSender};
|
||||
use collab_rt::CollaborationServer;
|
||||
use appflowy_collaborate::command::{RTCommandReceiver, RTCommandSender};
|
||||
use appflowy_collaborate::CollaborationServer;
|
||||
use database::file::bucket_s3_impl::S3BucketStorage;
|
||||
use openssl::ssl::{SslAcceptor, SslAcceptorBuilder, SslFiletype, SslMethod};
|
||||
use openssl::x509::X509;
|
||||
|
|
|
|||
|
|
@ -6,10 +6,10 @@ use actix::{
|
|||
use actix_web_actors::ws;
|
||||
use actix_web_actors::ws::{CloseCode, CloseReason, ProtocolError, WebsocketContext};
|
||||
use anyhow::anyhow;
|
||||
use appflowy_collaborate::error::RealtimeError;
|
||||
use appflowy_collaborate::RealtimeClientWebsocketSink;
|
||||
use async_trait::async_trait;
|
||||
use bytes::Bytes;
|
||||
use collab_rt::error::RealtimeError;
|
||||
use collab_rt::RealtimeClientWebsocketSink;
|
||||
use collab_rt_entity::user::RealtimeUser;
|
||||
use collab_rt_entity::SystemMessage;
|
||||
use governor::clock::DefaultClock;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
use actix::{Message, Recipient};
|
||||
use collab_rt::error::RealtimeError;
|
||||
use appflowy_collaborate::error::RealtimeError;
|
||||
|
||||
use serde_repr::{Deserialize_repr, Serialize_repr};
|
||||
use std::fmt::Debug;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
use crate::biz::actix_ws::client::rt_client::{RealtimeClientWebsocketSinkImpl, RealtimeServer};
|
||||
use crate::biz::actix_ws::entities::{ClientMessage, ClientStreamMessage, Connect, Disconnect};
|
||||
use actix::{Actor, Context, Handler, ResponseFuture};
|
||||
use collab_rt::error::RealtimeError;
|
||||
use collab_rt::{CollaborationServer, RealtimeAccessControl};
|
||||
use appflowy_collaborate::error::RealtimeError;
|
||||
use appflowy_collaborate::{CollaborationServer, RealtimeAccessControl};
|
||||
use collab_rt_entity::user::UserDevice;
|
||||
use database::collab::CollabStorage;
|
||||
use std::ops::Deref;
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ use access_control::access::ObjectType;
|
|||
use access_control::access::{enable_access_control, AccessControl};
|
||||
use access_control::act::{Action, ActionVariant};
|
||||
use app_error::AppError;
|
||||
use appflowy_collaborate::RealtimeAccessControl;
|
||||
use async_trait::async_trait;
|
||||
use collab_rt::RealtimeAccessControl;
|
||||
use database_entity::dto::AFAccessLevel;
|
||||
use tracing::instrument;
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use async_trait::async_trait;
|
|||
|
||||
use collab::core::collab_plugin::EncodedCollab;
|
||||
|
||||
use collab_rt::command::{RTCommand, RTCommandSender};
|
||||
use appflowy_collaborate::command::{RTCommand, RTCommandSender};
|
||||
use database::collab::{AppResult, CollabStorage, CollabStorageAccessControl};
|
||||
use database_entity::dto::{
|
||||
AFAccessLevel, AFSnapshotMeta, AFSnapshotMetas, CollabParams, InsertSnapshotParams, QueryCollab,
|
||||
|
|
@ -17,7 +17,7 @@ use database_entity::dto::{
|
|||
use itertools::{Either, Itertools};
|
||||
|
||||
use crate::state::RedisConnectionManager;
|
||||
use collab_rt::data_validation::CollabValidator;
|
||||
use appflowy_collaborate::data_validation::CollabValidator;
|
||||
use sqlx::Transaction;
|
||||
use std::collections::HashMap;
|
||||
use std::sync::Arc;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ use crate::biz::snapshot::queue::PendingQueue;
|
|||
use crate::state::RedisConnectionManager;
|
||||
use anyhow::anyhow;
|
||||
use app_error::AppError;
|
||||
use appflowy_collaborate::data_validation::validate_encode_collab;
|
||||
use async_stream::stream;
|
||||
use collab_rt::data_validation::validate_encode_collab;
|
||||
use database::collab::{
|
||||
create_snapshot_and_maintain_limit, get_all_collab_snapshot_meta, latest_snapshot_time,
|
||||
select_snapshot, AppResult, COLLAB_SNAPSHOT_LIMIT, SNAPSHOT_PER_HOUR,
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use crate::config::config::Config;
|
|||
use access_control::access::AccessControl;
|
||||
use access_control::metrics::AccessControlMetrics;
|
||||
use app_error::AppError;
|
||||
use collab_rt::CollabRealtimeMetrics;
|
||||
use appflowy_collaborate::CollabRealtimeMetrics;
|
||||
use dashmap::DashMap;
|
||||
use database::file::bucket_s3_impl::S3BucketStorage;
|
||||
use database::user::{select_all_uid_uuid, select_uid_from_uuid};
|
||||
|
|
|
|||
Loading…
Reference in New Issue