ホームTauriepicenter-so/epicenter
epicenter-so

epicenter

Other#Local-first#CRDT#Svelte#Tauri#TypeScript
GitHub で見る →
4,491

// 概要

Epicenter は、データをプレーンテキストや SQLite ファイルとしてローカル環境に保存するオープンソースの local-first アプリケーションエコシステムです。Yjs CRDTs を活用することで、クライアントサイド暗号化によるプライバシーを保護しつつ、デバイス間でのシームレスな同期を実現します。開発者はコアとなる workspace ライブラリを利用して、統一された型付きデータスキーマを共有するカスタムアプリケーションを構築可能です。

// 技術解説

Epicenter は、プレーンテキストと SQLite ファイルの単一フォルダーにデータを保存することで、ユーザーが自身のデータを完全に所有できるように設計された、ローカルファーストかつオープンソースのアプリケーションエコシステムです。そのアーキテクチャは、信頼の源泉として Yjs CRDTs を中心に据えており、これを高速なクエリのための SQLite や、人間が読みやすいアクセシビリティのための markdown に具体化します。この設計は、異なるアプリケーションが同じ共有ワークスペースに対して読み書きを行うことを可能にし、クライアントサイドの暗号化とリレー専用の sync server を通じてプライバシーを確保することで、複数のツールにまたがるデータの断片化という問題を解決します。

// 主要ハイライト

01
Yjs CRDTs を単一の信頼の源泉として使用し、ローカルデータのシームレスなマルチデバイス同期を実現します。
02
データを SQLite および markdown ファイルに具体化することで、ユーザーは Obsidian のような外部ツールを使用して情報をクエリ、grep、または編集できます。
03
クライアントサイドの end-to-end 暗号化を実装しており、sync server はリレーとしてのみ機能し、ユーザーのコンテンツにアクセスすることは決してありません。
04
開発者が型付きスキーマを定義し、同期機能を備えたカスタムアプリを構築できるモジュール式ライブラリ @epicenter/workspace を提供します。
05
保守性と再利用性を確保するため、コアロジック、ミドルウェア、アプリケーション層の厳格なアーキテクチャ分離を特徴としています。
06
文字起こし、メモ取り、ブラウザベースのタブ管理など、すべて同じデータ層を共有する多様なローカルファーストツールをサポートしています。

// ユースケース

01
共有可能な CRDT ベースのデータスキーマを用いた local-first アプリケーションの構築
02
メモ、トランスクリプト、チャット履歴の複数デバイス間での同期
03
AI の tool calling とローカルの workspace データや仮想ファイルシステムとの統合

// クイックスタート

Epicenter を使い始めるには、GitHub の releases ページから macOS、Windows、または Linux 用のビルド済みバイナリをダウンロードできます。このプラットフォーム上で開発を行いたい場合は、リポジトリを clone し、Bun と Rust がインストールされていることを確認した上で、'bun install' を実行して環境をセットアップしてください。その後、@epicenter/workspace ライブラリを探索して独自のスキーマを定義し、CRDT ベースのテーブルをアプリケーションに統合できます。