Package Exports
- multiaddr
- multiaddr/src/convert
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 (multiaddr) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
js-multiaddr
[
](https://travis-ci.org/diasdavid/js-multiaddr)
multiaddr implementation in JavaScript.
Usage
In Node.js through npm
$ npm install --save multiaddrvar multiaddr = require('multiaddr')In the Browser through browserify
Same as in Node.js, you just have to browserify the code before serving it. See the browserify repo for how to do that.
In the Browser through <script> tag
Make the multiaddr.min.js available through your server and load it using a normal <script> tag, this will export the multiaddr on the window object, such that:
var multiaddr = window.multiaddrGotchas
You will need to use Node.js Buffer API compatible, if you are running inside the browser, you can access it by multiaddr.Buffer or you can install Feross's Buffer.
Example
Simple
var multiaddr = require('multiaddr')
var addr = multiaddr("/ip4/127.0.0.1/udp/1234")
// <Multiaddr /ip4/127.0.0.1/udp/1234>
addr.buffer
// <Buffer >
addr.toString()
// /ip4/127.0.0.1/udp/1234
// construct with Buffer
addr = multiaddr(addr.buffer)
// <Multiaddr /ip4/127.0.0.1/udp/1234>Protocols
// get the multiaddr protocol codes
addr.protoCodes()
// [4, 6]
// get the multiaddr protocol string codes
addr.protoNames()
// ['ip4', 'tcp']
// get the multiaddr protocol description objects
addr.protos()
// [{code: 4, name: 'ip4', size: 32},
// {code: 17, name: 'udp', size: 16}]Other formats
// get a node friendly address object
addr.nodeAddress()
// {family: "IPv4", port:1234, address: "127.0.0.1"} - note no UDP :(
addr.fromNodeAddress({family: "IPv4", port:1234, address: "127.0.0.1"}, 'udp')
// /ip4/127.0.0.1/udp/1234
// handles the stupid string version too
addr = multiaddr.fromStupidString("udp4://127.0.0.1:1234")
// <Multiaddr /ip4/127.0.0.1/udp/1234>
addr.toStupidString(buf)
// udp4://127.0.0.1:1234En/decapsulate
addr.encapsulate('/sctp/5678')
// <Multiaddr /ip4/127.0.0.1/udp/1234/sctp/5678>
addr.decapsulate('/udp') // up to + inc last occurrence of this subaddr
// <Multiaddr /ip4/127.0.0.1>Tunneling
Multiaddr allows expressing tunnels very nicely.
var printer = multiaddr('/ip4/192.168.0.13/tcp/80')
var proxy = multiaddr('/ip4/10.20.30.40/tcp/443')
var printerOverProxy = proxy.encapsulate(printer)
// <Multiaddr /ip4/10.20.30.40/tcp/443/ip4/192.168.0.13/tcp/80>
var proxyAgain = printerOverProxy.decapsulate('/ip4')
// <Multiaddr /ip4/10.20.30.40/tcp/443>