gostream

package
v0.35.1 Latest Latest
Warning

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

Go to latest
Published: Jun 13, 2024 License: MIT Imports: 7 Imported by: 6

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, opts ...ListenerOption) (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

type ListenerOption added in v0.35.1

type ListenerOption func(*listener) error

func IgnoreEOF added in v0.35.1

func IgnoreEOF() ListenerOption

Jump to

Keyboard shortcuts

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