菜单

架构概述

相关源文件

目的与范围

本文档概述了 AppFlowy 的系统架构,涵盖了 Flutter 前端与 Rust 后端之间的分离、主要子系统及其交互方式。本页面侧重于整体结构组织和组件关系。

有关各个子系统的具体详细信息,请参阅:前端架构和应用程序初始化后端架构和核心服务数据库和协作系统视图和文档管理用户认证和工作区管理

高层系统架构

AppFlowy 采用基于 Flutter 的前端和基于 Rust 的后端之间清晰分离的架构,通过 FFI(外部函数接口)进行连接。该架构支持云端部署和仅本地部署。

前后端通信架构

来源:frontend/appflowy_flutter/pubspec.yaml16-17 frontend/rust-lib/Cargo.toml1-34 frontend/rust-lib/dart-ffi frontend/rust-lib/lib-dispatch frontend/rust-lib/flowy-core

核心系统组件

该系统由几个关键子系统组成,负责处理应用程序的不同方面。

来源:frontend/rust-lib/flowy-database2/src/manager.rs56-91 frontend/rust-lib/flowy-folder frontend/rust-lib/flowy-user frontend/rust-lib/flowy-ai

数据库系统架构

数据库系统是最复杂的子系统之一,它处理具有多种视图类型(网格、看板、日历)的结构化数据。

数据库管理层次结构

来源:frontend/rust-lib/flowy-database2/src/manager.rs56 frontend/rust-lib/flowy-database2/src/services/database/database_editor.rs61-75 46-62

文档系统架构

文档系统通过基于插件的架构处理富文本编辑,支持不同类型的块。

文档编辑架构

来源:frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart43-74 63-102 frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/callout/callout_block_component.dart76-109

状态管理和数据流

AppFlowy 在 Flutter 前端使用 BLoC 模式进行状态管理,事件流经 Rust 后端。

前端状态管理流程

来源:

协作与实时同步

协作系统使用 collab 库实现多个客户端之间的实时同步。

协作架构

来源:76-84 97-100

服务架构和依赖管理

后端采用面向服务的架构,具有清晰的职责分离和依赖注入。

服务层组织

服务类别组件职责
核心服务DatabaseManager, UserManager, FolderManager主要业务逻辑和数据管理
视图服务DatabaseViewEditor, DatabaseViews视图特定操作和渲染
协作CollabBuilder, CollabIntegrate实时同步和数据一致性
AI 服务AIManager, LocalAIControllerAI 驱动的功能和聊天功能
存储服务StorageService, CollabKVDB数据持久化和缓存
服务器抽象AppFlowyServer, 云/本地实现环境无关的服务器操作

来源:73-91

平台适配 (Platform Adaptation)

AppFlowy 支持多平台,具有自适应 UI 和平台特定优化。

平台特定架构

来源:47-75 110-152 414-432