This library provides all tools required to write a client for the p2panda
network. It is shipped both as a Rust crate p2panda-rs
with WebAssembly
bindings and a NPM package p2panda-js
with TypeScript definitions running
in NodeJS or any modern web browser.
Bamboo
entries.node
servers via JSON RPC calls.import p2panda from "p2panda-js";
const { KeyPair } = await p2panda;
const keyPair = new KeyPair();
console.log(keyPair.publicKey());
use p2panda_rs::identity::KeyPair;
let key_pair = KeyPair::new();
println!("{}", key_pair.public_key());
See the demo application and its
source code. More examples can be found
in the p2panda-rs
and p2panda-js
directories.
If you are using p2panda
in web browsers or NodeJS applications run:
$ npm i p2panda-js
For Rust environments and with cargo-edit installed run:
$ cargo add p2panda-rs
Visit the corresponding folders for development instructions:
Performance benchmarks can be found in benches. You can run them
using cargo-criterion
:
$ cargo install cargo-criterion
$ cargo criterion
# An HTML report with plots is generated automatically
$ open target/criterion/reports/index.html
These benchmarks can be used to compare the performance across branches by running them first in a base branch and then in the comparison branch. The HTML-reports will include a comparison of the two results.
GNU Affero General Public License v3.0 AGPL-3.0-or-later
This project has received funding from the European Unions Horizon 2020 research and innovation programme within the framework of the NGI-POINTER Project funded under grant agreement No 871528