go-multiaddr-fmt – github.com/multiformats/go-multiaddr-fmt Index | Files

package mafmt

import "github.com/multiformats/go-multiaddr-fmt"

Index

Variables

var DNS = Or(
	Base(ma.P_DNS),
	Base(ma.P_DNSADDR),
	DNS4,
	DNS6,
)

Define a dnsaddr, dns, dns4 or dns6 format multiaddr

var DNS4 = Base(ma.P_DNS4)

Define a dns4 format multiaddr

var DNS6 = Base(ma.P_DNS6)

Define a dns6 format multiaddr

var HTTP = Or(
	And(TCP, Base(ma.P_HTTP)),
	And(IP, Base(ma.P_HTTP)),
	And(DNS, Base(ma.P_HTTP)),
)

Define http over TCP or DNS or http over DNS format multiaddr

var HTTPS = Or(
	And(TCP, Base(ma.P_HTTPS)),
	And(IP, Base(ma.P_HTTPS)),
	And(DNS, Base(ma.P_HTTPS)),
)

Define https over TCP or DNS or https over DNS format multiaddr

var IP = Or(Base(ma.P_IP4), Base(ma.P_IP6))

Define IP as either ipv4 or ipv6

var IPFS = P2P

IPFS can run over any reliable underlying transport protocol

Deprecated: use P2P

var P2P = And(Reliable, Base(ma.P_P2P))

P2P can run over any reliable underlying transport protocol

var QUIC = And(UDP, Base(ma.P_QUIC))

Define QUIC as 'quic' on top of udp (on top of ipv4 or ipv6)

var Reliable = Or(TCP, UTP, QUIC)

Now define a Reliable transport as either tcp or utp or quic

var TCP = Or(
	And(DNS, Base(ma.P_TCP)),
	And(IP, Base(ma.P_TCP)),
)

Define TCP as 'tcp' on top of either ipv4 or ipv6, or dns equivalents.

var UDP = Or(
	And(DNS, Base(ma.P_UDP)),
	And(IP, Base(ma.P_UDP)),
)

Define UDP as 'udp' on top of either ipv4 or ipv6, or dns equivalents.

var UTP = And(UDP, Base(ma.P_UTP))

Define UTP as 'utp' on top of udp (on top of ipv4 or ipv6).

var Unreliable = Or(UDP)

Define unreliable transport as udp

var WebRTCDirect = Or(
	And(HTTP, Base(ma.P_P2P_WEBRTC_DIRECT)),
	And(HTTPS, Base(ma.P_P2P_WEBRTC_DIRECT)))

Define p2p-webrtc-direct over HTTP or p2p-webrtc-direct over HTTPS format multiaddr

Types

type Base

type Base int

func (Base) Matches

func (p Base) Matches(a ma.Multiaddr) bool

func (Base) String

func (p Base) String() string

type Pattern

type Pattern interface {
	Matches(ma.Multiaddr) bool

	String() string
	// contains filtered or unexported methods
}

func And

func And(ps ...Pattern) Pattern

func Or

func Or(ps ...Pattern) Pattern

Source Files

patterns.go

Version
v0.1.0 (latest)
Published
Sep 19, 2019
Platform
linux/amd64
Imports
2 packages
Last checked
4 months ago

Tools for package owners.