JSPM

  • Created
  • Published
  • Downloads 1133
  • Score
    100M100P100Q124260F
  • License MIT

Node.js implementation of the TCP module that libp2p uses, which implements the interface-connection and interface-transport interfaces

Package Exports

  • libp2p-tcp

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (libp2p-tcp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

js-libp2p-tcp

Build Status Dependency Status js-standard-style

Node.js implementation of the TCP module that libp2p uses, which implements the interface-connection interface for dial/listen.

Description

libp2p-tcp in Node.js is a very thin shim that adds support for dialing to a multiaddr. This small shim will enable libp2p to use other different transports.

Example

const TCP = require('libp2p-tcp')
const multiaddr = require('multiaddr')

const mh1 = multiaddr('/ip4/127.0.0.1/tcp/9090')
const mh2 = multiaddr('/ip6/::/tcp/9092')

const tcp = new Tcp()

var listener = tcp.createListener(mh1, function handler (socket) {
  console.log('connection')
  socket.end('bye')
})

var listener.listen(function ready () {
  console.log('ready')

  const client = tcp.dial(mh1)
  client.pipe(process.stdout)
  client.on('end', () => {
    tcp.close()
  })
})

outputs

ready
connection
bye

Installation

npm

> npm i libp2p-tcp

API

libp2p-tcp accepts TCP addresses both IPFS and non IPFS encapsulated addresses, i.e:

/ip4/127.0.0.1/tcp/4001 /ip4/127.0.0.1/tcp/4001/ipfs/QmHash

Both for dialing and listening.

License

MIT