HN 日本語サマリー

← 一覧へ戻る
プログラミング

Show HN: Syncular – TypeScriptとRustコアによるオフラインファーストSQL同期

Show HN: Syncular – offline-first SQL sync with TypeScript and Rust cores (github.com)

68 pointsby quambo24 コメント

要約

Syncularは、サーバー権威型でオフラインファーストのSQL同期システムです。クライアントはローカルSQLiteデータベースを使用し、書き込みは楽観的アウトボックスを経由します。サーバー上の順序付けされたコミットログが真実の源となります。TypeScriptとRustのコアを持ち、仕様駆動で開発されています。

全文翻訳

syncular サーバー権威型、オフラインファーストのSQL同期。クライアントはローカルのSQLiteデータベース(ブラウザではOPFS、それ以外ではネイティブSQLite)を保持し、書き込みは楽観的アウトボックスを経由し、サーバー上の1つの順序付けられたコミットログが真実の源となります。 ドキュメント クイックスタート ライブデモ ベンチマーク ブログ bun create syncular-app my-app リポジトリの構築方法 仕様ファースト: SPEC.md が規範であり、spec/vectors/ がゴールデンフィクスチャです。仕様とコードが一致しない場合は、コードが変更されます。2つのコア(TypeScriptとRust)は、実装に依存しない適合性スイートによって同期が保たれます。 テストドクトリン: 統合シナリオのためのループバックインメモリトランスポート。トランスポートインターフェースでのフォールトインジェクション。テストは明示的な準備完了シグナルを待ちます(スリープは禁止)。リアルソケットテストは少数で隔離されています。packages/conformance を参照してください。 1つの良いパス: ブラウザはOPFSに永続化し、サポートされていない環境をエラーとして報告します。同期はWebSocket over で実行されます。 レイアウトパス それが何であるか packages/core プロトコルコーデック、共有型、ベクターラウンドトリップ packages/server handleSyncRequest(bytes, ctx) + ストレージ/認証インターフェース(SQLite、Postgres、D1) packages/server-hono, packages/server-workers フレームワークバインディング(Hono、Cloudflare Workers) packages/web-client @syncular/client: @sqlite.org/sqlite-wasm 上のTSクライアントコア packages/react クライアント上のReactフック packages/typegen スキーマIR + TypeScriptエミッタ、名前付きクエリ(cargo-free) packages/crypto, packages/crdt-yjs カラムごとのE2EEプリミティブ、Yjs CRDTマージャー packages/testing @syncular/testkit: リアルサーバー+クライアントのインメモリループバック packages/conformance 両方のコアがパスする必要があるシナリオランナー rust/ RustクライアントコアとそのC-ABI FFIクレート bindings/ Tauri、React Native、Swift、Kotlin、Flutterアプリ docs/ ドキュメントサイト(syncular.dev) コマンド bun install bun run check # typecheck + lint + test コントリビューティング 最初にAGENTS.mdを読んでください。その中のドクトリン(仕様ファースト、フォールバックなし、テストでのタイマーなし、クロスコアパリティ)は、人間と機械のコントリビューターの両方に適用されます。 AI支援について: LLMは、テスト、再現、ベンチマーク、ドキュメント、本番コードに歓迎されます。提出するすべてのものをレビュー、理解、反復し、すべての行を擁護する準備をしてください。本番コードは最も厳格なレビューを受けます。Syncular自身の開発では、LLM支援は主にテストの作成と技術的概念の反復に使用されており、同じレビュー基準が適用されます。低労力で機械生成されたPR、イシュー、コメントはコメントなしで閉じられます。エージェント向けの完全なポリシーとプレーンテキストドキュメントバンドルは、syncular.dev/llms で確認できます。