1 个不稳定版本
0.1.0 | 2021 年 12 月 28 日 |
---|
#16 在 #local-first
用于 tlfs-api
255KB
6.5K SLoC
本地第一 SDK
理念
没有云,它只是别人的电脑。
本地第一 SDK 提供了一组工具,可以像使用最先进的基于云的架构一样高效地编写应用程序,同时提供本地第一软件的七大理念 0 -- 基本上免费
- 软件可以几乎即时响应用户输入。 (无需等待服务器往返,无需旋转器.)
- 跨设备同步。 (在您的移动设备上继续笔记本电脑的工作。)
- "离线优先" 是本地第一的一个子集。 (与应用程序交互时,连接性无关。)
- 与其他对等方无缝协作。 (无需担心冲突即可编辑和同步共享数据。)
- 完全数据代理权。 (做你想做的,数据属于你。)
- 安全且私密的数据管理。 (一切都被加密,只有你有钥匙。)
- 完全拥有和控制应用程序数据。 (没有人可以从你那里夺走服务。)
组件
本地第一 SDK 包含以下组件
- 用户和访问控制: ... (密钥管理,acl)
- 多设备支持和协作: ... (设备身份验证,p2p,对等发现(mdns 和通过云对等方))
- 数据持久性 ... (云对等方或自托管)
- 多设备支持和互操作性 ... (浏览器,本地,android/ios?)
工件
本地第一 SDK 有三种风味
- 一个有偏见的 JavaScript 包(具有 TypeScript 绑定),用于编写针对浏览器的本地第一应用程序。
- 一个库,可以嵌入到其他应用程序中,无论是作为 Rust 库还是与 C 兼容的 FFI。
- 一个本地永久进程,负责管理用户数据。应用程序可以通过 HTTP 与此守护进程接口。
本地第一 JavaScript SDK
由于浏览器的 API 保证较弱,其环境必须被视为短暂的[^1]。这就是为什么可选的云对等补充服务非常适用于浏览器环境(数据持久性,对等发现)。
截至目前,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许可证定义的任何有意提交以包含在本作品中的贡献,应如上双许可,不附加任何额外的条款或条件。
依赖项
~20–36MB
~616K SLoC