mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
34 lines
1.7 KiB
TeX
34 lines
1.7 KiB
TeX
\section{Related Work}
|
|
\label{sec:related}
|
|
|
|
Local-first software was articulated as a design philosophy by Kleppmann
|
|
et al.\ \cite{kleppmann2019localfirst}, who identified seven properties
|
|
of local-first applications: instant response, multi-device sync, offline
|
|
support, collaboration, data longevity, privacy, and user control. The
|
|
Lux capsule model satisfies all seven properties and adds cryptographic
|
|
enforcement (encryption, threshold access control, chain receipts) that
|
|
the original local-first paper described as desirable but did not
|
|
formalize.
|
|
|
|
CRDTs for collaborative editing have been implemented in Automerge
|
|
\cite{kleppmann2017automerge}, Yjs \cite{nicolaescu2015yjs}, and
|
|
Diamond Types \cite{josephg2023diamond}. The capsule data layer can
|
|
use any of these implementations, with the addition of encryption
|
|
for CRDT operations before broadcast.
|
|
|
|
Encrypted databases have been explored in CryptDB \cite{popa2011cryptdb}
|
|
(which supports queries over encrypted data via onion encryption) and
|
|
Mylar \cite{popa2014mylar} (which provides end-to-end encryption for web
|
|
applications). The capsule model takes a different approach: data is
|
|
decrypted locally and queries run over plaintext on the user's device,
|
|
avoiding the performance overhead and query limitations of encrypted
|
|
database schemes.
|
|
|
|
The Solid project \cite{bernerslee2016solid} proposed user-controlled
|
|
data pods as an alternative to platform-controlled data silos. Solid
|
|
uses Linked Data and RDF; the capsule model uses encrypted SQLite and
|
|
CRDTs. The key architectural difference is that Solid pods are
|
|
server-hosted (the pod provider can access data), while capsules are
|
|
encrypted and local-first (no provider can access plaintext data).
|
|
|