Crate tx5_connection

Crate tx5_connection 

Source
Expand description

P2P WebRTC connection establishment and pooling. Tx5 uses SBD as the WebRTC signaling protocol for connection establishment, providing an interface where you can attempt to send data to any known peer with the expectation that Tx5 will open a connection to that peer or use an existing open connection.

Project Forum Chat

License: MIT License: Apache-2.0

§Tx5

  • tx5 - crates.io - The main holochain tx5 webrtc networking crate integrating the other code in this monorepo.

§Tx5 Support Crates

  • tx5-connection - crates.io - Holochain webrtc connection.
  • tx5-core - crates.io - Core types used in other tx5 crates.
  • tx5-online - crates.io - Network online connectivity status events.
  • tx5-go-pion-turn - crates.io - Rust process wrapper around tx5-go-pion-turn executable.
  • tx5-go-pion-sys - crates.io - Low level rust bindings to the go pion webrtc library.
  • tx5-go-pion - crates.io - Higher level rust bindings to the go pion webrtc library.
  • tx5-signal - crates.io - Holochain webrtc signal client.
  • tx5-demo - crates.io - Demo showing off tx5 p2p connectivity.

§tx5-connection

Holochain webrtc connection. Starts by sending messages over the sbd signal server, if we can upgrade to a proper webrtc p2p connection, we do so.

§WebRTC Backend Features

Tx5 can be backed currently by 1 of 2 backend webrtc libraries.

The go pion library was the original implementation, but as libdatachannel has reached stability, we have switched it over to be the default as it is much easier to write rust FFI bindings to C++ code than Go code.

Re-exports§

pub use tx5_signal;
pub use super::*;

Structs§

Conn
A tx5 connection.
ConnRecv
Receive messages from a tx5 connection.
ConnStats
Connection statistics.
FramedConn
A framed wrapper that can send and receive larger messages than the base connection.
FramedConnRecv
Receive a framed message on the connection.
Hub
A signal server connection from which we can establish tx5 connections.
HubConfig
Tx5 connection hub config.
HubRecv
A stream of incoming p2p connections.
IceServers
Configuration for a group of ICE servers.
Tx5InitConfig
Initial configuration. If you would like to change this from the default, please call Tx5InitConfig::set_as_global_default before creating any peer connections.
WebRtcConfig
WebRTC config.

Enums§

BackendModule
The backend webrtc module to use.
CredentialType
The type of credential to use for ICE servers.
TransportPolicy
ICE transport policy.