@dao-xyz/libp2p-noise
TypeScript icon, indicating that this package has built-in type declarations

14.1.2 • Public • Published

js-libp2p-noise

This is a fork for ChainSafe/js-libp2p-noise where performance gains are made by utilising libsodium.js (appx. 20-50% gain) instead of 'stablelib' for browser usages, and Node crypto native lib from Node apps (500-700% gain).

This fork is ESM only.

npm Discourse posts dao-xyz

Noise libp2p handshake for js-libp2p

This repository contains TypeScript implementation of noise protocol, an encryption protocol used in libp2p.

Warning: Even though this package works in browser, it will bundle around 600Kb (200Kb gzipped) of code

https://bundlephobia.com/result?p=@dao-xyz/libp2p-noise@latest

Usage

Install with yarn add @dao-xyz/libp2p-noise or npm i @dao-xyz/libp2p-noise.

Example of using default noise configuration and passing it to the libp2p config:

import {noise} from "@dao-xyz/libp2p-noise"

//custom noise configuration, pass it instead of `new Noise()`
//x25519 private key
const n = noise(privateKey);

const libp2p = new Libp2p({
   modules: {
     connEncryption: [noise()],
   },
});

Where parameters for Noise constructor are:

  • static Noise key - (optional) existing private Noise static key
  • early data - (optional) an early data payload to be sent in handshake messages

API

This module exposes a crypto interface, as defined in the repository js-interfaces.

» API Docs

Bring your own crypto

You can provide a custom crypto implementation (instead of the default, based on stablelib) by passing a third argument to the Noise constructor.

The implementation must conform to the ICryptoInterface, defined in https://github.com/dao-xyz/js-libp2p-noise/blob/master/src/crypto/crypto.ts

Contribute

Feel free to join in. All welcome. Open an issue!

License

Licensed under either of

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
14.1.213latest

Version History

VersionDownloads (Last 7 Days)Published
14.1.213
14.1.11
13.0.11
12.0.11
12.0.01
11.1.31
11.1.21
11.1.11
11.1.01
11.0.151
11.0.141
11.0.131
11.0.101
11.0.91
11.0.81
11.0.71
11.0.61
11.0.51
11.0.41
11.0.31
11.0.21
11.0.11
11.0.01

Package Sidebar

Install

npm i @dao-xyz/libp2p-noise

Weekly Downloads

35

Version

14.1.2

License

Apache-2.0 OR MIT

Unpacked Size

1.12 MB

Total Files

110

Last publish

Collaborators

  • marcus.pousette