11个版本 (7个重大更新)

0.8.1 2023年11月19日
0.7.1 2023年7月27日
0.7.0 2023年3月6日
0.6.0 2022年9月7日
0.1.0 2021年1月28日

#3 in #entry

Download history 3/week @ 2024-04-15 9/week @ 2024-04-22 10/week @ 2024-04-29 2/week @ 2024-05-06 4/week @ 2024-05-13 61/week @ 2024-05-20 10/week @ 2024-05-27 27/week @ 2024-06-03 21/week @ 2024-06-10 23/week @ 2024-06-17 23/week @ 2024-06-24 9/week @ 2024-07-01 4/week @ 2024-07-15 124/week @ 2024-07-29

每月128次下载
2 crates 中使用

AGPL-3.0-or-later

1MB
16K SLoC

p2panda-rs

熊猫所需的所有功能(针对Rust)


此库提供了编写p2panda网络客户端、节点甚至您自己的协议实现的所需所有工具。它既以带有WebAssembly绑定的Rust crate p2panda-rs的形式提供,也以带有TypeScript定义的NPM包 p2panda-js的形式提供,在NodeJS或任何现代Web浏览器中运行。

核心p2panda specification完全功能但仍在审查中,因此请做好API更改的准备,直到我们达到v1.0。目前没有任何p2panda实现接受了安全审计。

安装

cargo add p2panda-rs

示例

use p2panda_rs::entry::encode::encode_entry;
use p2panda_rs::entry::EntryBuilder;
use p2panda_rs::identity::KeyPair;
use p2panda_rs::operation::encode::encode_operation;
use p2panda_rs::operation::OperationBuilder;

// Id of the schema which describes the data we want to publish. This should
// already be known to the node we are publishing to.
pub const SCHEMA_ID: &str =
    "profile_0020c65567ae37efea293e34a9c7d13f8f2bf23dbdc3b5c7b9ab46293111c48fc78b";

// Generate new Ed25519 key pair.
let key_pair = KeyPair::new();

// Add field data to "create" operation.
let operation = OperationBuilder::new(&SCHEMA_ID.parse()?)
    .fields(&[("username", "panda".into())])
    .build()?;

// Encode operation into bytes.
let encoded_operation = encode_operation(&operation)?;

// Create Bamboo entry (append-only log data type) with operation as payload.
let entry = EntryBuilder::new().sign(&encoded_operation, &key_pair)?;

// Encode entry into bytes.
let encoded_entry = encode_entry(&entry)?;

println!("{} {}", encoded_entry, encoded_operation);

examples文件夹中运行此代码

cargo run --example=create_operation

开发

您需要以下工具以开始开发

# Run tests
cargo test

# Run WebAssembly tests
wasm-pack test --headless --firefox

许可证

GNU Affero通用公共许可证v3.0 AGPL-3.0--后续

支持者



本项目已获得欧洲联盟“地平线2020”研究和创新计划资助,该计划在NGI-POINTER项目(资助协议号871528)和NGI-ASSURE项目(资助协议号957073)框架下进行。

依赖项

~8–14MB
~250K SLoC