{"bugs":{"url":"https://github.com/libp2p/js-libp2p-tcp/issues"},"dist":{"shasum":"57f50de4dcc980d4c1898f773e712a1567f24846","tarball":"https://registry.npmjs.org/libp2p-tcp/-/libp2p-tcp-0.14.2.tgz","fileCount":36,"integrity":"sha512-BeUtjUrcSEK5qQYuEMXdX7SnHUxUeocnCv5bXrhUf2cREkUX/RN+ee6HS1L0WoGlaVHHUs67sNG1hl3b1VDT9g==","signatures":[{"sig":"MEUCIQDE47RbHWvDgakM3S/MoZgvaf2KKgCXWRtVZB+cUA0dNQIgHSSkeHlb3iWXc6p/x8GtmjtPPaD5cj2yBbocP6J7bzA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1598891,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd6hrhCRA9TVsSAnZWagAAIA4QAIoRnRPybI4ozAhl96iA\njNze70K4lQIOFGxONzr1HbUgwdWceWGe1WExN8NuJqhfpqjAo6sJdIRy2Nz5\nyxNvSFEP8aCz1QaCOh1Pn3nftdAV20lQLKKtRWT+jDkyi3fr7vFJpN7BxRrM\nsxwDq/oUqhUltx87vWnFnzCgbrfnVTR4BTMOPr1jYmDJgPZTbYuyxK89uBJB\n6BjBO9RuGsOLQBEXVDr1hgwaZsqhoCk4svAAF2PSCd6uDwUOpVrOpGj8S1nk\nZko6WTUfHJlzYV+qoR5LoKE0WlhOhamxVozeWgOIsaxABQm6LK/MqcZok7/T\n7QP4YpU4MKsLMZ32G0ub9MygWQszBXF3OeEygX4BnNUqnfawBc/wmnOoZe7x\nObbse0Lu2hbJRAH2sTYB+xVrJ4dPo+CSK6oHC2700OYMR+FshdfX1rdHAB1R\nWMUnXRMaa7/krzapVcREetsxj3M0FbaShYH8gjr7SZueLcLj1Qyk9KV4IfpX\n1s/qopUq+bPunZTOCUOiO1KRTNHbxNvto4Vuq+WvrbBTWJg8SGqHivoouK0A\nE9kqvfUsMgCwPOEBnY4izcCTax6yFjMYQWD5iizP9SmIJP6WF9+8dc46DdBs\nx0mObZ32tG+TZnwp47GyFxYHdl9SAmCTMmO5LSE2FC6kpjnZkW3D2/tXRTdZ\nE8hD\r\n=WUD9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"src/index.js","name":"libp2p-tcp","readme":"# js-libp2p-tcp\n\n[![](https://img.shields.io/badge/made%20by-Protocol%20Labs-blue.svg?style=flat-square)](http://protocol.ai)\n[![](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/)\n[![](https://img.shields.io/badge/freenode-%23libp2p-yellow.svg?style=flat-square)](http://webchat.freenode.net/?channels=%23libp2p)\n[![Discourse posts](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg)](https://discuss.libp2p.io)\n[![](https://img.shields.io/codecov/c/github/libp2p/js-libp2p-tcp.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-tcp)\n[![](https://img.shields.io/travis/libp2p/js-libp2p-tcp.svg?style=flat-square)](https://travis-ci.com/libp2p/js-libp2p-tcp)\n[![Dependency Status](https://david-dm.org/libp2p/js-libp2p-tcp.svg?style=flat-square)](https://david-dm.org/libp2p/js-libp2p-tcp)\n[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)\n\n[![](https://raw.githubusercontent.com/libp2p/interface-transport/master/img/badge.png)](https://github.com/libp2p/interface-transport)\n[![](https://raw.githubusercontent.com/libp2p/interface-connection/master/img/badge.png)](https://github.com/libp2p/interface-connection)\n\n\n> JavaScript implementation of the TCP module for libp2p. It exposes the [interface-transport](https://github.com/libp2p/interface-connection) for dial/listen. `libp2p-tcp` is a very thin shim that adds support for dialing to a `multiaddr`. This small shim will enable libp2p to use other transports.\n\n## Lead Maintainer\n\n[Jacob Heun](https://github.com/jacobheun)\n\n## Table of Contents\n\n- [Install](#install)\n  - [npm](#npm)\n- [Usage](#usage)\n- [API](#api)\n- [Contribute](#contribute)\n- [License](#license)\n\n## Install\n\n### npm\n\n```sh\n> npm install libp2p-tcp\n```\n\n## Usage\n\n```js\nconst TCP = require('libp2p-tcp')\nconst multiaddr = require('multiaddr')\nconst pipe = require('it-pipe')\nconst { collect } = require('streaming-iterables')\n\n// A simple upgrader that just returns the MultiaddrConnection\nconst upgrader = {\n  upgradeInbound: maConn => maConn,\n  upgradeOutbound: maConn => maConn\n}\n\nconst tcp = new TCP({ upgrader })\n\nconst listener = tcp.createListener((socket) => {\n  console.log('new connection opened')\n  pipe(\n    ['hello'],\n    socket\n  )\n})\n\nconst addr = multiaddr('/ip4/127.0.0.1/tcp/9090')\nawait listener.listen(addr)\nconsole.log('listening')\n\nconst socket = await tcp.dial(addr)\nconst values = await pipe(\n  socket,\n  collect\n)\nconsole.log(`Value: ${values.toString()}`)\n\n// Close connection after reading\nawait listener.close()\n```\n\nOutputs:\n\n```sh\nlistening\nnew connection opened\nValue: hello\n```\n\n## API\n\n### Transport\n\n[![](https://raw.githubusercontent.com/libp2p/interface-transport/master/img/badge.png)](https://github.com/libp2p/interface-transport)\n\n`libp2p-tcp` accepts TCP addresses as both IPFS and non IPFS encapsulated addresses, i.e:\n\n`/ip4/127.0.0.1/tcp/4001`\n`/ip4/127.0.0.1/tcp/4001/ipfs/QmHash`\n\n(both for dialing and listening)\n\n### Connection\n\n[![](https://raw.githubusercontent.com/libp2p/interface-connection/master/img/badge.png)](https://github.com/libp2p/interface-connection)\n\n## Contribute\n\nContributions are welcome! The libp2p implementation in JavaScript is a work in progress. As such, there's a few things you can do right now to help out:\n\n- [Check out the existing issues](//github.com/libp2p/js-libp2p-tcp/issues).\n- **Perform code reviews**.\n- **Add tests**. There can never be enough tests.\n\nPlease be aware that all interactions related to libp2p are subject to the IPFS [Code of Conduct](https://github.com/ipfs/community/blob/master/code-of-conduct.md).\n\nSmall note: If editing the README, please conform to the [standard-readme](https://github.com/RichardLitt/standard-readme) specification.\n\n## License\n\n[MIT](LICENSE) © 2015-2016 David Dias\n","engines":{"npm":">=3.0.0","node":">=6.0.0"},"gitHead":"657d3e6f4a7584ffdeb1378486a6eb153af8bf47","license":"MIT","scripts":{"lint":"aegir lint","test":"aegir test -t node","release":"aegir release -t node --no-build","coverage":"nyc --reporter=text --reporter=lcov npm run test:node","test:node":"aegir test -t node","release-major":"aegir-release -t node --type major --no-build","release-minor":"aegir release -t node --type minor --no-build"},"_npmUser":{"name":"jacobheun","email":"jacobheun@gmail.com"},"homepage":"https://github.com/libp2p/js-libp2p-tcp","keywords":["IPFS"],"pre-push":["lint"],"repository":{"url":"git+https://github.com/libp2p/js-libp2p-tcp.git","type":"git"},"_npmVersion":"6.12.0","description":"Node.js implementation of the TCP module that libp2p uses, which implements the interface-connection and interface-transport interfaces","directories":{},"maintainers":[{"name":"daviddias","email":"daviddias.p@gmail.com"},{"name":"dignifiedquire","email":"dignifiedquire@gmail.com"}],"_nodeVersion":"12.13.0","contributors":[{"name":"Alan Shaw","email":"alan.shaw@protocol.ai"},{"name":"Alan Shaw","email":"alan@tableflip.io"},{"name":"David Dias","email":"daviddias.p@gmail.com"},{"name":"Diogo Silva","email":"fsdiogo@gmail.com"},{"name":"Dmitriy Ryajov","email":"dryajov@gmail.com"},{"name":"Drew Stone","email":"drewstone329@gmail.com"},{"name":"Evan Schwartz","email":"evan.mark.schwartz@gmail.com"},{"name":"Friedel Ziegelmayer","email":"dignifiedquire@gmail.com"},{"name":"Greenkeeper","email":"support@greenkeeper.io"},{"name":"Jacob Heun","email":"jacobheun@gmail.com"},{"name":"Jacob Heun","email":"jake@andyet.net"},{"name":"João Antunes","email":"j.goncalo.antunes@gmail.com"},{"name":"Linus Unnebäck","email":"linus@folkdatorn.se"},{"name":"Pedro Teixeira","email":"i@pgte.me"},{"name":"Prashanth Chandra","email":"coolshanth94@gmail.com"},{"name":"Richard Littauer","email":"richard.littauer@gmail.com"},{"name":"Stephen Whitmore","email":"stephen.whitmore@gmail.com"},{"name":"TomCoded","email":"tomtinkerer@gmail.com"},{"name":"Vasco Santos","email":"vasco.santos@moxy.studio"}],"dependencies":{"debug":"^4.1.1","mafmt":"^7.0.0","class-is":"^1.1.0","err-code":"^2.0.0","multiaddr":"^7.2.1","libp2p-utils":"~0.1.0","stream-to-it":"^0.2.0","abortable-iterator":"^3.0.0"},"_hasShrinkwrap":false,"leadMaintainer":"Jacob Heun <jacobheun@gmail.com>","readmeFilename":"README.md","devDependencies":{"chai":"^4.2.0","aegir":"^20.4.1","sinon":"^7.5.0","it-pipe":"^1.1.0","dirty-chai":"^2.0.1","libp2p-interfaces":"^0.1.6","streaming-iterables":"^4.1.1"},"_npmOperationalInternal":{"tmp":"tmp/libp2p-tcp_0.14.2_1575623392847_0.484196132840897","host":"s3://npm-registry-packages"},"_id":"libp2p-tcp@0.14.2","version":"0.14.2"}