js-multiaddr
JavaScript implementation of multiaddr.
Table of Contents
Background
What is multiaddr?
A standard way to represent addresses that
- support any standard network protocol
- are self-describing
- have a binary packed format
- have a nice string representation
- encapsulate well
Install
npm i multiaddr
Setup
Node.js
const multiaddr = require('multiaddr')
Browser: Browserify, Webpack, other bundlers
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.
const multiaddr = require('multiaddr')
Browser: <script>
Tag
Loading this module through a script tag will make the Multiaddr
obj available in
the global namespace.
<script src="https://unpkg.com/multiaddr/dist/index.min.js"></script>
<script src="https://unpkg.com/multiaddr/dist/index.js"></script>
NOTE: You will need access to the Node.js Buffer
API. If you are running
in the browser, you can access it with multiaddr.Buffer
or you can install
feross/buffer.
Usage
$ node
> const multiaddr = require('multiaddr')
> const addr = multiaddr("/ip4/127.0.0.1/udp/1234")
<Multiaddr /ip4/127.0.0.1/udp/1234>
> addr.buffer
<Buffer 04 7f 00 00 01 11 04 d2>
> addr.toString()
'/ip4/127.0.0.1/udp/1234'
> addr.protos()
[
{code: 4, name: 'ip4', size: 32},
{code: 17, name: 'udp', size: 16}
]
> addr.nodeAddress()
{
family: "IPv4",
port: 1234,
address: "127.0.0.1"
}
> addr.encapsulate('/sctp/5678')
<Multiaddr /ip4/127.0.0.1/udp/1234/sctp/5678>
API
https://multiformats.github.io/js-multiaddr/
Maintainers
Captain: @diasdavid.
Contribute
Contributions welcome. Please check out the issues.
Check out our contributing document for more information on how we work, and about contributing in general. Please be aware that all interactions related to multiformats are subject to the IPFS Code of Conduct.
Small note: If editing the README, please conform to the standard-readme specification.
License
MIT © 2016 Protocol Labs Inc.