3.3 KiB
3.3 KiB
Fileverse + rNotes Integration
Research and proof-of-concept repo for integrating Fileverse decentralization primitives into the rStack ecosystem (rNotes, rSpace).
Goal
Evaluate and prototype how Fileverse's AGPL-licensed components can enhance rNotes/rSpace with:
- E2E encryption via
@fileverse/crypto(or MIT equivalents) - IPFS storage for files/images (eliminating centralized storage)
- WebRTC P2P sync for real-time collaboration
- Decentralized spreadsheets via
@fileverse-dev/dsheet
Current rStack Architecture
| Component | rnotes-online | rspace-online (rNotes module) |
|---|---|---|
| CRDT | None | Automerge 2.2.8 |
| Sync | REST only | WebSocket Automerge sync |
| Offline | No | Full offline-first (IndexedDB) |
| Encryption | TLS only | E2E (AES-256-GCM + HKDF) |
| Real-time Collab | No | Yes (Automerge + Y.js) |
| Editor | TipTap 3.19 | TipTap 3.20 + Y.js |
| Auth | EncryptID | EncryptID + MCP |
| Import | Markdown | 6 formats (Notion, Obsidian, Logseq, Google Docs, Evernote, Roam) |
Fileverse Ecosystem
| Package | Purpose | License |
|---|---|---|
@fileverse-dev/ddoc |
TipTap editor + Y.js CRDTs + WebRTC + E2E + IPFS | AGPL-3.0 |
@fileverse/crypto |
ECIES, NaCl SecretBox, Argon2id, HKDF | AGPL-3.0 |
collaboration-server |
Y.js WebSocket relay, UCAN auth, ephemeral → IPFS | AGPL-3.0 |
fileverse-storage |
UCAN-authorized file uploads to IPFS | AGPL-3.0 |
@fileverse-dev/dsheet |
Decentralized spreadsheet (Y.js + WebRTC + IndexedDB) | AGPL-3.0 |
Integration Priorities
See docs/integration-plan.md for the detailed plan.
- Crypto primitives evaluation — Compare
@fileverse/cryptovs rSpace's existing DocCrypto - IPFS file storage — POC for encrypted file uploads (resolves rNotes TASK-4)
- Collaboration server — Self-host on Netcup for WebSocket relay
- dSheet module — Prototype as
rsheet-onlinein rStack
Repo Structure
fileverse/
├── docs/ # Research and architecture docs
│ ├── integration-plan.md # Detailed integration roadmap
│ ├── crypto-comparison.md # @fileverse/crypto vs DocCrypto analysis
│ └── yjs-vs-automerge.md # CRDT framework decision
├── poc/ # Proof-of-concept implementations
│ ├── crypto-eval/ # Encryption primitive benchmarks
│ ├── ipfs-storage/ # IPFS file upload POC
│ ├── collab-server/ # Self-hosted collaboration server
│ └── dsheet-embed/ # dSheet React component POC
└── README.md
License Considerations
Fileverse repos are AGPL-3.0. Using their npm packages triggers copyleft for the combined work. Since rStack is open source on Gitea/GitHub, this is acceptable. For maximum flexibility, the crypto POC also evaluates MIT-licensed alternatives (Noble, StableLib, TweetNaCl) that provide equivalent primitives without AGPL obligations.