Skip to content
This repository has been archived by the owner on Feb 26, 2021. It is now read-only.
/ js-libp2p-spdy Public archive

SPDY 3.1 implementation wrapper that is compatible with libp2p Stream Muxer expected interface

License

Notifications You must be signed in to change notification settings

libp2p/js-libp2p-spdy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

js-libp2p-spdy

Coverage Status Dependency Status Travis CI Circle CI js-standard-style

Sauce Test Status

SPDY 3.1 implementation wrapper that is compatible with libp2p Stream Muxer expected interface

Installation

npm

> npm i libp2p-spdy

Use in Node.js

const spdy = require('libp2p-spdy')

Use in a browser with browserify, webpack or any other bundler

The code published to npm that gets loaded on require is in fact a ES5 transpiled version with the right shims added. This means that you can require it and use with your favourite bundler without having to adjust asset management process.

var spdy = require('libp2p-spdy')

Use in a browser Using a script tag

Loading this module through a script tag will make the Lip2pSpdy obj available in the global namespace.

<script src="https://unpkg.com/libp2p-spdy/dist/index.min.js"></script>
<!-- OR -->
<script src="https://unpkg.com/libp2p-spdy/dist/index.js"></script>

Usage

API

Attaching it to a socket (duplex stream)

As a listener

const listener = spdy(conn, true)

As a dialer

const dialer = spdy(conn, false)

Opening a multiplex duplex stream

const conn = dialer.newStream((err, conn) => {})

conn.on('error', (err) => {})

note: Works the same on the listener side

Receiving incoming stream

dialer.on('stream', (conn) => {})

note: Works the same on the listener side

Close

dialer.close()

note: Works the same on the listener side

Other events

dialer.on('close', () => {})
dialer.on('error', () => {})

note: Works the same on the listener side

This module uses pull-streams

We expose a streaming interface based on pull-streams, rather then on the Node.js core streams implementation (aka Node.js streams). pull-streams offers us a better mechanism for error handling and flow control guarantees. If you would like to know more about why we did this, see the discussion at this issue.

You can learn more about pull-streams at:

Converting pull-streams to Node.js Streams

If you are a Node.js streams user, you can convert a pull-stream to a Node.js stream using the module pull-stream-to-stream, giving you an instance of a Node.js stream that is linked to the pull-stream. For example:

const pullToStream = require('pull-stream-to-stream')

const nodeStreamInstance = pullToStream(pullStreamInstance)
// nodeStreamInstance is an instance of a Node.js Stream

To learn more about this utility, visit https://pull-stream.github.io/#pull-stream-to-stream.

About

SPDY 3.1 implementation wrapper that is compatible with libp2p Stream Muxer expected interface

Resources

License

Stars

Watchers

Forks

Packages

No packages published