首页Tauriepicenter-so/epicenter
epicenter-so

epicenter

Other#Local-first#CRDT#Svelte#Tauri#TypeScript
前往 GitHub →
4,491

// 项目简介

Epicenter 是一个开源的本地优先应用生态系统,将数据以纯文本和 SQLite 文件形式存储在您的设备上。它利用 Yjs CRDTs 确保多设备间的无缝同步,同时通过客户端加密保护用户隐私。开发者可以利用核心工作区库构建自定义应用程序,并共享统一的类型化数据架构。

// 技术分析

Epicenter 是一个本地优先、开源的应用程序生态系统,旨在通过将用户数据存储在单个纯文本和 SQLite 文件文件夹中,赋予用户对其数据的完全所有权。其架构以 Yjs CRDTs 作为事实来源,并将其物化为 SQLite 以实现高性能查询,同时物化为 markdown 以实现人类可读的访问性。这种设计通过允许不同的应用程序读取和写入同一个共享工作区,解决了数据在多个工具间碎片化的问题,同时通过客户端加密和仅作为中继的同步服务器确保了隐私。

// 核心亮点

01
使用 Yjs CRDTs 作为单一事实来源,实现本地数据的无缝多设备同步。
02
将数据物化为 SQLite 和 markdown 文件,允许用户使用 Obsidian 等外部工具查询、grep 或编辑其信息。
03
实现客户端端到端加密,确保同步服务器仅作为中继,永远无法访问用户内容。
04
提供一个模块化库 @epicenter/workspace,允许开发者定义类型化模式并构建具有内置同步功能的自定义应用程序。
05
在核心逻辑、中间件和应用程序层之间实现严格的架构分离,以确保可维护性和可重用性。
06
支持多种本地优先工具,包括转录、笔记和基于浏览器的标签页管理,所有工具共享同一个数据层。

// 典型使用场景

01
构建具有共享 CRDT 支持数据架构的本地优先应用程序
02
在多个设备之间同步笔记、转录内容和聊天记录
03
将 AI 工具调用与本地工作区数据及虚拟文件系统集成

// 快速开始

要开始使用 Epicenter,您可以从 GitHub 发布页面下载适用于 macOS、Windows 或 Linux 的预构建二进制文件。有兴趣在平台上进行开发的开发者应克隆存储库,确保已安装 Bun 和 Rust,并运行 'bun install' 来设置环境。然后,您可以探索 @epicenter/workspace 库来定义您自己的模式,并将基于 CRDT 的表集成到您的应用程序中。