gostream

package
v0.0.0-...-160218e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 12, 2023 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

Package gostream allows to replace the standard net stack in Go with [LibP2P](https://github.com/libp2p/libp2p) streams.

Given a libp2p.Host, gostream provides Dial() and Listen() methods which return implementations of net.Conn and net.Listener.

Instead of the regular "host:port" addressing, `gostream` uses a Peer ID, and rather than a raw TCP connection, gostream will use libp2p's net.Stream. This means your connections will take advantage of LibP2P's multi-routes, NAT transversal and stream multiplexing.

Note that LibP2P hosts cannot dial to themselves, so there is no possibility of using the same Host as server and as client.

Index

Constants

This section is empty.

Variables

View Source
var Network = "libp2p"

Network is the "net.Addr.Network()" name returned by addresses used by gostream connections. In turn, the "net.Addr.String()" will be a peer ID.

Functions

func Dial

func Dial(ctx context.Context, h host.Host, pid peer.ID, tag protocol.ID) (net.Conn, error)

Dial opens a stream to the destination address (which should parseable to a peer ID) using the given host and returns it as a standard net.Conn.

func Listen

func Listen(h host.Host, tag protocol.ID) (net.Listener, error)

Listen provides a standard net.Listener ready to accept "connections". Under the hood, these connections are libp2p streams tagged with the given protocol.ID.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL