1 个不稳定版本

0.1.0 2021 年 12 月 28 日

#16#local-first


用于 tlfs-api

MIT 许可证

255KB
6.5K SLoC

本地第一 SDK

License dependency status

PRs welcome commits contributors

理念

没有云,它只是别人的电脑。

本地第一 SDK 提供了一组工具,可以像使用最先进的基于云的架构一样高效地编写应用程序,同时提供本地第一软件的七大理念 0 -- 基本上免费

  • 软件可以几乎即时响应用户输入。 (无需等待服务器往返,无需旋转器.)
  • 跨设备同步。 (在您的移动设备上继续笔记本电脑的工作。)
  • "离线优先" 是本地第一的一个子集。 (与应用程序交互时,连接性无关。)
  • 与其他对等方无缝协作。 (无需担心冲突即可编辑和同步共享数据。)
  • 完全数据代理权。 (做你想做的,数据属于你。)
  • 安全且私密的数据管理。 (一切都被加密,只有你有钥匙。)
  • 完全拥有和控制应用程序数据。 (没有人可以从你那里夺走服务。)

组件

本地第一 SDK 包含以下组件

  1. 用户和访问控制: ... (密钥管理,acl)
  2. 多设备支持和协作: ... (设备身份验证,p2p,对等发现(mdns 和通过云对等方))
  3. 数据持久性 ... (云对等方或自托管)
  4. 多设备支持和互操作性 ... (浏览器,本地,android/ios?)

工件

本地第一 SDK 有三种风味

  1. 一个有偏见的 JavaScript 包(具有 TypeScript 绑定),用于编写针对浏览器的本地第一应用程序。
  2. 一个库,可以嵌入到其他应用程序中,无论是作为 Rust 库还是与 C 兼容的 FFI。
  3. 一个本地永久进程,负责管理用户数据。应用程序可以通过 HTTP 与此守护进程接口。

本地第一 JavaScript SDK

由于浏览器的 API 保证较弱,其环境必须被视为短暂的[^1]。这就是为什么可选的云对等补充服务非常适用于浏览器环境(数据持久性,对等发现)。

截至目前,SDK 仅提供为 ES 模块,需要异步导入

import * as localFirst from 'local-first';

await localFirst.init();

[..]

[^1]: 最值得注意的是这是关于用户数据的持久性(密钥材料和应用程序数据)。然而,通过切换到另一个浏览器配置文件/容器等,很容易丢失浏览数据。


底层

Rust,libp2p,crdts,cambria,.. -> 插入奇妙之处 <-


许可证

根据以下任一许可证授权

由您自行选择。

贡献

请保持尊重。查看我们的贡献指南以获取详细信息。您根据Apache-2.0许可证定义的任何有意提交以包含在本作品中的贡献,应如上双许可,不附加任何额外的条款或条件。

依赖项

~20–36MB
~616K SLoC