{"_id":"@alexeadem/wrtc","_rev":"4-0f1078e5ed35a649a79d8689687725eb","time":{"0.3.6-dev":"2019-04-03T04:13:43.240Z","created":"2019-04-03T04:42:42.924Z","0.3.7-dev":"2019-04-03T04:42:43.277Z","modified":"2022-04-04T12:39:41.966Z"},"name":"@alexeadem/wrtc","dist-tags":{"latest":"0.3.7-dev"},"versions":{"0.3.7-dev":{"name":"@alexeadem/wrtc","description":"Standards-compliant WebRTC implementation for Node","keywords":["webrtc","p2p","peer"],"version":"0.3.7-dev","author":{"name":"Alan K","email":"ack@modeswitch.org","url":"http://blog.modeswitch.org"},"homepage":"http://js-platform.github.io/node-webrtc/","bugs":{"url":"https://github.com/js-platform/node-webrtc/issues"},"license":"BSD-2-Clause","repository":{"type":"git","url":"git+ssh://git@github.com/js-platform/node-webrtc.git"},"main":"lib/index.js","browser":"lib/browser.js","binary":{"module_name":"wrtc","module_path":"./build/{configuration}/","remote_path":"./{module_name}/v{version}/{configuration}/","package_name":"{node_abi}-{platform}-{arch}.tar.gz","host":"https://wrtc-qbo.s3.amazonaws.com"},"engines":{"node":"6.x || 8.x || 10.x || 11.x"},"dependencies":{"nan":"^2.3.2","node-cmake":"2.3.2","node-pre-gyp":"0.11.x","canvas":"^2.3.0"},"peerDependencies":{"domexception":"^1.0.1"},"devDependencies":{"aws-sdk":"^2.434.0","browserify-middleware":"^8.1.1","color-space":"^1.16.0","cross-env":"^5.1.4","eslint":"^4.19.1","express":"^4.16.2","js-yaml":"^3.11.0","jsdom":"^11.6.2","karma":"^3.0.0","karma-browserify":"^5.1.2","karma-chrome-launcher":"^2.2.0","karma-firefox-launcher":"^1.1.0","karma-tap":"^4.1.4","karma-tap-pretty-reporter":"^4.1.0","minimatch":"^3.0.4","minimist":"0.0.8","mocha":"^5.2.0","mocha-sugar-free":"^1.4.0","q":"^1.5.1","request":"^2.88.0","request-promise-native":"^1.0.5","rimraf":"^2.6.2","semver":"^5.5.0","simple-peer":"^9.0.0","tap-spec":"^5.0.0","tape":"^4.9.1","travis-multirunner":"^4.3.0","ws":"^5.2.0"},"optionalDependencies":{"canvas":"^2.3.0"},"scripts":{"install":"node scripts/install.js","lint":"eslint lib/*.js lib/**/*.js test/*.js test/**/*.js examples/*.js examples/**/*.js karma.conf.js scripts/*.js","publish-binary":"node scripts/publish.js","test":"node --expose-gc test/all.js","test:bridge":"cross-env BROWSER=chrome node scripts/karma.js && cross-env BROWSER=firefox node scripts/karma.js","wpt:init":"git submodule update --init --recursive","wpt:reset":"rimraf ./test/web-platform-tests/tests && npm run wpt:init","wpt:test":"SDP_SEMANTICS=unified-plan mocha test/web-platform-tests/run-wpts.js --exit","wpt:update":"git submodule update --recursive --remote --force && cd test/web-platform-tests/tests && python wpt.py manifest --path ../wpt-manifest.json"},"contributors":[{"name":"Alan K","email":"ack@modeswitch.org","url":"blog.modeswitch.org"},{"name":"Eric Rescorla","email":"ekr@rtfm.org"},{"name":"Pasquale Boemio","email":"boemianrapsodi@gmail.com"},{"name":"Damon Oehlman","email":"damon@fluxant.com"},{"name":"Benjamin Byholm","email":"bbyholm@abo.fi"},{"name":"Alex Londeree","email":"alex.londeree@gmail.com"},{"name":"Jesús Leganés Combarro \"piranna\"","email":"piranna@gmail.com"},{"name":"Dario Andrei","email":"wouldgo84@gmail.com"},{"name":"Matt Porritt","email":"mattp@catalyst-au.net"},{"name":"Mark Andrus Roberts","email":"markandrusroberts@gmail.com"},{"name":"Arno Klein","email":"klaronix@aklein.net"},{"name":"Manu Raghavan","email":"manu@voxology.co"},{"name":"Ross Kukulinski","email":"ross@getyodlr.com"},{"name":"Jeppe Ryskov Larsen","email":"jeppe@bjergsted.dk"},{"name":"Nazar Mokrynskyi","email":"nazar@mokrynskyi.com"},{"name":"Nicholas Johnston","email":"nickjoh@protonmail.ch"}],"gitHead":"fab1098039600156ae7712351b1c8eaaae6ca84f","bundleDependencies":["node-pre-gyp"],"_id":"@alexeadem/wrtc@0.3.7-dev","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"alexeadem","email":"alex@qbo.io"},"dist":{"integrity":"sha512-76Zd/lhe35Dq6YV2+aJOcZEC9ho2D9TknEEvqDT/VZvpVYO1dLxdKPkf+d/BJIqj/9TOmi6dhfKnmBK+F1DVdA==","shasum":"2489a96cbf5305636a18be3d1468cad9a2f85190","tarball":"https://registry.npmjs.org/@alexeadem/wrtc/-/wrtc-0.3.7-dev.tgz","fileCount":641,"unpackedSize":2335918,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcpDnDCRA9TVsSAnZWagAAhHIP/iO+89oNyI4As9sUzuO+\nyoyfIcTb3VTJawOivvNfgRB9qGUm+i7mdMRiXOqGdQOMOECZGdWXLjAY9MKO\nXJoVIw/xEnc7zf5rotvmyQdTJbCyraXT0cNBkqimmEHrVkv8Gs4//vzDsfAP\n7IS7xm9nV5gtx2HxnMrDpP4rZH1r5OquUB+P6m/UvcnPjtoMHB92yA2JMhN3\n3A8kKN2SzBxU1JOUFE0x2ZBPLt3aRy5KWrVWVSpdB7zLfXshf3MdAK4O225P\njDvIGnU0qBVSykfsos8NoK5U2k9MKjbTYxhBxZtVT6yXkxOfZ+BIoTcusVno\n1e1mXfIkfJAohwPzKATnTLB3hUtC1D7uKEO8rZg0ENSGpjnVuSz6EXUtt67A\nzrCdb0ud+WSy7C6nnlfJl+t/SmZUQ9nswW4wsR3l9PwRqr/WB+4VodONkkL0\nQXWwWfSafjprQSeKBKNYm6jHiZGv1dC85APPf6suObTFIjJLcqKURSKuozG5\nFdhhG0cMAuuWRu7jzIACvh6oqf2+BulrnOObBuflPP//26XRLmFGz5CxXfwf\nZEem5Ave+UKLeMfqIm3u6Jfcf2vA8IbZAMWTkihxv/GzRoH9mkhPgx1rpLNl\nNifnIY6YfT+TLw+FfhmocZqnj+hAK8qkfGJuz1tQs+9xUrSCEWn3pRlDqfvT\ntKCZ\r\n=D45O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCe7pzYKXH/WFWC3FSn7F/zlQuKfb68j5f3W+8pbj/yfAIgDDELZw1vDS8GQU/0mQRS9X0VwNp7Kdp79RdC43+pvwg="}]},"maintainers":[{"name":"alexeadem","email":"alex@qbo.io"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/wrtc_0.3.7-dev_1554266563127_0.5367377221745977"},"_hasShrinkwrap":false}},"maintainers":[{"name":"alexeadem","email":"alex@qbo.io"}],"description":"Standards-compliant WebRTC implementation for Node","homepage":"http://js-platform.github.io/node-webrtc/","keywords":["webrtc","p2p","peer"],"repository":{"type":"git","url":"git+ssh://git@github.com/js-platform/node-webrtc.git"},"contributors":[{"name":"Alan K","email":"ack@modeswitch.org","url":"blog.modeswitch.org"},{"name":"Eric Rescorla","email":"ekr@rtfm.org"},{"name":"Pasquale Boemio","email":"boemianrapsodi@gmail.com"},{"name":"Damon Oehlman","email":"damon@fluxant.com"},{"name":"Benjamin Byholm","email":"bbyholm@abo.fi"},{"name":"Alex Londeree","email":"alex.londeree@gmail.com"},{"name":"Jesús Leganés Combarro \"piranna\"","email":"piranna@gmail.com"},{"name":"Dario Andrei","email":"wouldgo84@gmail.com"},{"name":"Matt Porritt","email":"mattp@catalyst-au.net"},{"name":"Mark Andrus Roberts","email":"markandrusroberts@gmail.com"},{"name":"Arno Klein","email":"klaronix@aklein.net"},{"name":"Manu Raghavan","email":"manu@voxology.co"},{"name":"Ross Kukulinski","email":"ross@getyodlr.com"},{"name":"Jeppe Ryskov Larsen","email":"jeppe@bjergsted.dk"},{"name":"Nazar Mokrynskyi","email":"nazar@mokrynskyi.com"},{"name":"Nicholas Johnston","email":"nickjoh@protonmail.ch"}],"author":{"name":"Alan K","email":"ack@modeswitch.org","url":"http://blog.modeswitch.org"},"bugs":{"url":"https://github.com/js-platform/node-webrtc/issues"},"license":"BSD-2-Clause","readme":"<p align=\"center\">\n  <img height=\"120px\" src=\"https://upload.wikimedia.org/wikipedia/commons/d/d9/Node.js_logo.svg\" />&nbsp;&nbsp;&nbsp;&nbsp;\n  <img height=\"120px\" src=\"https://webrtc.org/assets/images/webrtc-logo-vert-retro-dist.svg\" />\n</p>\n\n[![NPM](https://img.shields.io/npm/v/wrtc.svg)](https://www.npmjs.com/package/wrtc) [![macOS/Linux Build Status](https://circleci.com/gh/node-webrtc/node-webrtc/tree/develop.svg?style=shield)](https://circleci.com/gh/node-webrtc/node-webrtc) [![Windows Build status](https://ci.appveyor.com/api/projects/status/iulc84we28o1i7b9?svg=true)](https://ci.appveyor.com/project/markandrus/node-webrtc-7bnua)\n\nnode-webrtc provides Node.js bindings to [WebRTC M71](https://chromium.googlesource.com/external/webrtc/+/branch-heads/71). You can write Node.js applications that use RTCDataChannels with it. **Some MediaStream APIs are supported.**\n\n|         | x86 | x64 | armv6l | armv7l | arm64 |\n|:------- |:--- |:--- |:------ |:------ |:----- |\n| Linux   | -   | ✔︎   | ✘      | ✔︎      | ✔︎     |\n| macOS   | -   | ✔︎   | -      | -      | -     |\n| Windows | ✘   | ✔︎   | -      | -      | -     |\n\n# Getting Started\n\n## Prerequisites\n\nThis library will attempt to download pre-compiled binaries for your particular\nplatform using [node-pre-gyp](https://github.com/mapbox/node-pre-gyp); however,\nif binaries are unavailable, it will fallback to building from source using\n[node-cmake](https://github.com/cjntaylor/node-cmake). When building from\nsource, in addition to the prerequisites required by node-cmake, you will need\n\n* Git\n* CMake 3.12 or newer\n* GCC 5.4 or newer (Linux)\n* Xcode 9 or newer (macOS)\n* Microsoft Visual Studio 2017 (Windows)\n* Any [additional prerequisites listed by WebRTC](https://webrtc.org/native-code/development/prerequisite-sw)\n\n## Install\n\nThe easiest way to install is via npm:\n\n```\nnpm install wrtc\n```\n\nIf you want to work from source, run\n\n```\ngit clone https://github.com/js-platform/node-webrtc.git\ncd node-webrtc\nnpm install\n```\n\nDepending on what you checkout, `npm install` will either download a\npre-compiled binary or attempt to build from source. Set `SKIP_DOWNLOAD=true` to\nalways build from source. See below for more information on building from\nsource.\n\n## Build\n\nIf you would like to build node-webrtc from source, run\n\n```\n./node_modules/.bin/ncmake rebuild\n```\n\nYou can pass either `--debug` or `--release` to build a debug or release build\nof node-webrtc (and the underlying WebRTC library). Refer to\n[node-cmake](https://github.com/cjntaylor/node-cmake) for additional\ncommand-line options to `ncmake`.\n\n### Other Notes\n\n#### Linux\n\nOn Linux, we statically link libc++ and libc++abi. Also, although we compile\nWebRTC sources with Clang (downloaded as part of WebRTC's build process), we\ncompile node-webrtc sources with GCC 5.4 or newer.\n\n##### armv7l\n\nIn order to cross-compile for armv7l on Linux,\n\n1. Set `TARGET_ARCH` to \"arm\".\n2. Install the appropriate toolchain, and set `ARM_TOOLS_PATH`.\n3. On Ubuntu, you may also need g++-arm-linux-gnueabihf.\n\n```\nwget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabihf/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz\ntar xf gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf.tar.xz\nSKIP_DOWNLOAD=true TARGET_ARCH=arm ARM_TOOLS_PATH=$(pwd)/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf npm install\n```\n\n##### arm64\n\nIn order to cross-compile for arm64 on Linux,\n\n1. Set `TARGET_ARCH` to \"arm64\".\n2. Install the appropriate toolchain, and set `ARM_TOOLS_PATH`.\n3. On Ubuntu, you may also need g++-aarch64-linux-gnu.\n\n```\nwget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz\ntar xf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz\nSKIP_DOWNLOAD=true TARGET_ARCH=arm64 ARM_TOOLS_PATH=$(pwd)/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu npm install\n```\n\n#### macOS\n\nOn macOS, we compile WebRTC sources with the version of Clang downloaded as part\nof WebRTC's build process, but we compile node-webrtc sources using the system\nClang.\n\n#### Windows\n\nOn Windows, we do not compile WebRTC sources with Clang. This is disabled by\npassing `is_clang=false` to `gn gen`.\n\n# Tests\n\n## Unit & Integration Tests\n\nOnce everything is built, run\n\n```\nnpm test\n```\n\n## Web Platform Tests\n\n[web-platform-tests/wpt](https://github.com/web-platform-tests/wpt) defines a suite of WebRTC tests. node-webrtc borrows a technique from [jsdom/jsdom](https://github.com/jsdom/jsdom) to run these tests in Node.js. Run the tests with\n\n```\nnpm run wpt:test\n```\n\n## MediaStream Loopback Example\n\nThis example demonstrates relaying MediaStreamTracks through node-webrtc. Run\nthe example with\n\n```\nnode examples/loopback.server.js\n```\n\nThen navigate to [http://localhost:8080/loopback.client.html](http://localhost:8080/loopback.client.html).\nYou should be prompted for your microphone and webcam. Once granted, the browser\nnegotiates an RTCPeerConnection with the server, and the server relays the\nbrowser's MediaStreamTracks. Finally, these are displayed in a &lt;video&gt;\nelement in the browser.\n\n## Programmatic Video Example\n\nThis example demonstrates compositing an incoming video MediaStreamTrack with\ngraphics drawn using [node-canvas](https://github.com/Automattic/node-canvas).\n\n```\nnode examples/programmatic-video.server.js\n```\n\nThen navigate to [http://localhost:8080/programmatic-video.client.html](http://localhost:8080/programmatic-video.client.html).\nYou should be prompted for your webcam. Once granted, the browser negotiates an\nRTCPeerConnection with the server, and the server relays the browser video track\nwith the text \"node-webrtc\" composited over it.\n","readmeFilename":"README.md"}