11 个版本 (6 个重大变更)
0.8.0 | 2024年6月26日 |
---|---|
0.7.1 | 2024年1月26日 |
0.7.0 | 2023年11月19日 |
0.4.0 | 2022年9月7日 |
0.1.0 | 2021年10月25日 |
#150 在 数据库接口
1MB
25K SLoC
aquadoggo
aquadoggo
是 p2panda 的参考节点实现。它旨在使本地第一、协作式 p2p 应用程序的设计和构建尽可能简单,甚至可能有些有趣!
aquadoggo
可在您的设备上运行,用于本地第一的应用程序,或作为共享社区基础设施在公共服务器上运行。像 aquadoggo
这样的节点执行多项任务,包括核心 p2panda 数据复制和验证,帮助边缘节点之间的发现和连接建立,并提供用于构建应用程序的开发者友好的 API。
功能
- 通过 GraphQL 等待来自客户端的签名操作。
- 验证操作的完整性、格式和签名,拒绝无效的操作。
- 将网络的操作存储在您选择的 SQL 数据库中(SQLite、PostgreSQL)。
- 在已知数据之上实现视图。
- 通过 GraphQL 响应过滤、排序和分页的数据查询。
- 在本地网络和互联网中发现其他节点。
- 通过 UDP 穿孔或通过中继建立点对点连接。
- 与其他节点高效复制数据。
安装
要在您的Rust项目中使用aquadoggo
,您可以使用以下命令将其添加为依赖项
cargo add aquadoggo
示例
直接在您正在构建的前端旁边运行节点,以实现完整的点对点应用。查看我们的Tauri示例,了解如何编写桌面应用程序。
use aquadoggo::{Configuration, Node};
use p2panda_rs::identity::KeyPair;
let config = Configuration::default();
let key_pair = KeyPair::new();
let node = Node::start(key_pair, config).await;
FFI绑定
如果您不使用Rust,可以从aquadoggo
包创建FFI绑定到您首选的编程语言。处理FFI绑定可能有点繁琐,我们还没有为您准备太多(目前),但请查看我们的Meli Android项目,了解我们如何处理Dart / Flutter的FFI绑定。
命令行应用程序
请查看我们的Releases部分,我们在这里发布了Linux、RaspberryPi、MacOS和Windows的二进制文件。
开发
要编译aquadoggo,必须安装Protocol Buffers编译器。
在基于Debian的操作系统上运行
$ sudo apt install -y protobuf-compiler
有关更多选项,请参阅安装文档。
许可
GNU Affero通用公共许可证v3.0 AGPL-3.0-or-later
支持者
本项目已获得欧盟“地平线2020”研究和创新计划的支持,该计划在NGI-POINTER项目的框架内,由资助协议号871528和NGI-ASSURE No 957073资助。
依赖项
~63–100MB
~2M SLoC