1 个不稳定版本
0.1.0 | 2021 年 12 月 28 日 |
---|
#18 在 #local-first
225KB
5.5K SLoC
本地优先 SDK
理念
没有云,这只是别人的电脑。
本地优先 SDK 提供了一套堆栈,可以像使用最先进的基于云的架构一样高效地编写应用程序,同时提供本地优先软件的七个理想 0 -- 基本上免费。
- 软件可以近乎即时地响应用户输入。 (无需等待服务器往返,无需加载动画.)
- 跨设备同步。 (在您的笔记本电脑上继续使用您的移动设备上停止的工作.)
- "离线优先"作为本地优先的一个子集。 (与应用程序的交互时,连接性无关紧要.)
- 与其他对等方的无缝协作。 (无需担心冲突即可编辑和同步共享数据.)
- 完整数据代理权。(您可以对您的数据进行您想要的任何操作,它只属于您.)
- 安全和私密的数据管理。(所有数据都进行了加密,只有您才有密钥.)
- 对应用程序数据的完全拥有权和控制权。(没有人可以夺取您服务的权利.)
组件
Local-First SDK 包含以下组件
- 用户和访问控制:... (密钥管理,acl)
- 多设备支持和协作:... (设备认证,p2p,对等发现 (mdns 和云对等))
- 数据持久性 ... (云对等或自托管)
- 多设备支持和互操作性 ... (浏览器,本地,android/ios?)
工件
Local-First SDK 有三种版本
- 一个面向浏览器的本地优先应用程序的 JavaScript 包(带有 TypeScript 绑定)。
- 可以嵌入到其他应用程序中的库,可以是 Rust 库或与 C 兼容的 FFI。
- 一个本地、永久的进程,用于保护用户的数据。应用程序可以通过 HTTP 与此守护进程进行交互。
Local-First JavaScript SDK
由于浏览器的 API 保证较弱,其环境必须被视为短暂的[^1]。这就是为什么可选的 Cloud-Peer 补充服务非常适合补充浏览器环境(数据持久性,对等发现)。
目前,SDK 仅作为 ES 模块提供,需要异步导入
import * as localFirst from 'local-first';
await localFirst.init();
[..]
[^1]: 最值得注意的是,这是关于用户数据的持久性(密钥材料和应用程序数据)。然而,通过切换到另一个浏览器配置文件/容器等,很容易丢失浏览数据。
底层
Rust, libp2p, crdts, cambria, .. --> 在此处插入奇妙之处 <--
许可证
根据以下任一许可证授权:
- Apache许可证2.0版本(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
请尊重他人。有关具体细节,请参阅我们的贡献指南。您有意提交以供包含在作品中的任何贡献,根据Apache-2.0许可证定义,应如上双授权,无需任何额外条款或条件。
依赖项
约14MB
约264K SLoC