Git Product home page Git Product logo

js-libp2p-noise's Introduction

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

js-libp2p-noise's People

Contributors

mpetrunic avatar morrigan avatar achingbrain avatar dependabot[bot] avatar mpetrun5 avatar github-actions[bot] avatar hugomrdias avatar wemeetagain avatar dapplion avatar marcus-pousette avatar twoeths avatar vasco-santos avatar maschad avatar timdaub avatar alanshaw avatar jacobheun avatar john-littlebearlabs avatar hackyguru avatar marcopolo avatar philknows avatar spalladino avatar shogunpanda avatar yusefnapora avatar nickreynolds avatar eng-cc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.