mafmt

A multiaddr validator

Usage no npm install needed!

<script type="module">
  import mafmt from 'https://cdn.skypack.dev/mafmt';
</script>

README

js-mafmt

Dependency Status codecov

Javascript implementation of multiaddr validation

Lead Maintainer

Vasco Santos.

Install

npm install mafmt

Usage

const mafmt = require('mafmt')

mafmt.DNS.matches('/dns4/ipfs.io') // true

API

mafmt.<FORMAT>.matches(multiaddr)

Where <FORMAT> may be:

<FORMAT> Description Example(s)
DNS a "dns4" or "dns6" format multiaddr /dnsaddr/ipfs.io
DNS4 a "dns4" format multiaddr /dns4/ipfs.io
DNS6 a "dns6" format multiaddr /dns6/protocol.ai/tcp/80
IP an "ip4" or "ip6" format multiaddr /ip4/127.0.0.1
/ip6/fc00::
TCP a "tcp" over IP format multiaddr /ip4/0.0.7.6/tcp/1234
UDP a "udp" over IP format multiaddr /ip4/0.0.7.6/udp/1234
QUIC a "quic" over UDP format multiaddr /ip4/1.2.3.4/udp/1234/quic
UTP a "utp" over UDP format multiaddr /ip4/1.2.3.4/udp/3456/utp
Websockets a "ws" over TCP or "ws" over DNS format multiaddr /ip4/1.2.3.4/tcp/3456/ws
/dnsaddr/ipfs.io/ws
WebSocketsSecure a "wss" over TCP or "wss" over DNS format multiaddr /ip6/::/tcp/0/wss
/dnsaddr/ipfs.io/wss
HTTP a "http" over TCP or DNS or "http" over DNS format multiaddr /ip4/127.0.0.1/tcp/90/http
/dnsaddr/ipfs.io/http
HTTPS a "https" over TCP or DNS or "https" over DNS format multiaddr /ip4/127.0.0.1/tcp/90/https
/dnsaddr/ipfs.io/https
WebRTCStar a "p2p" over "p2p-webrtc-star" over Websockets or "p2p" over "p2p-webrtc-star" over WebSocketsSecure format multiaddr /dnsaddr/ipfs.io/wss/p2p-webrtc-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4
WebSocketStar a "p2p" over "p2p-websocket-star" over Websockets or "p2p" over "p2p-websocket-star" over WebSocketsSecure or "p2p-websocket-star" over Websockets or "p2p-websocket-star" over WebSocketsSecure format multiaddr /ip4/1.2.3.4/tcp/3456/ws/p2p-websocket-star
/dnsaddr/localhost/ws/p2p-websocket-star/p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4
WebRTCDirect a "p2p-webrtc-direct" over HTTP or "p2p-webrtc-direct" over HTTPS format multiaddr /ip4/1.2.3.4/tcp/3456/http/p2p-webrtc-direct
Reliable a WebSockets or WebSocketsSecure or HTTP or HTTPS or WebRTCStar or WebRTCDirect or TCP or UTP or QUIC format multiaddr /dnsaddr/ipfs.io/wss
Circuit /p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4/p2p-circuit/p2p/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj
P2P "p2p", aka "ipfs", over Reliable or WebRTCStar or "p2p" format multiaddr /p2p/QmcgpsyWgH8Y8ajJz1Cu72KnS5uo2Aa2LpzU7kinSoooo4
/ip4/127.0.0.1/tcp/20008/ws/p2p/QmUjNmr8TgJCn1Ao7DvMy4cjoZU15b9bwSCBLE3vwXiwgj

Where multiaddr may be:

Returns true/false