https://github.com/multiformats/js-mafmt
javascript multiaddr validation
https://github.com/multiformats/js-mafmt
Last synced: about 1 year ago
JSON representation
javascript multiaddr validation
- Host: GitHub
- URL: https://github.com/multiformats/js-mafmt
- Owner: multiformats
- License: other
- Created: 2016-01-19T15:50:08.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2025-03-28T18:03:31.000Z (about 1 year ago)
- Last Synced: 2025-03-31T04:36:02.558Z (about 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 1.52 MB
- Stars: 16
- Watchers: 12
- Forks: 19
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @multiformats/mafmt
[](http://multiformats.io)
[](https://codecov.io/gh/multiformats/js-mafmt)
[](https://github.com/multiformats/js-mafmt/actions/workflows/js-test-and-release.yml?query=branch%3Amaster)
> A multiaddr validator
## Table of contents
- [Install](#install)
- [Browser `` tag](#browser-script-tag)
- [Usage](#usage)
- [API](#api)
- - [`mafmt.<FORMAT>.matches(multiaddr)`](#mafmtformatmatchesmultiaddr)
- [API Docs](#api-docs)
- [License](#license)
- [Contribution](#contribution)
## Install
```console
$ npm i @multiformats/mafmt
```
### Browser `<script>` tag
Loading this module through a script tag will make it's exports available as `MultiformatsMafmt` in the global namespace.
```html
<script src="https://unpkg.com/@multiformats/mafmt/dist/index.min.js">
```
## Usage
```js
import * as mafmt from '@multiformats/mafmt'
mafmt.DNS.matches('/dns4/ipfs.io') // true
```
## API
#### `mafmt..matches(multiaddr)`
Where `` may be:
| `` | 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:
- a [Multiaddr](https://www.npmjs.com/package/@multiformats/multiaddr)
- a String
- a [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)
Returns `true`/`false`
## API Docs
-
## License
Licensed under either of
- Apache 2.0, ([LICENSE-APACHE](LICENSE-APACHE) / )
- MIT ([LICENSE-MIT](LICENSE-MIT) / )
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.