Expand description
§stun-types
An implementation of parsing and writing STUN messages and attributes based on trait implementations.
This is based on the following standards:
- RFC8489 - ‘Session Traversal Utilities for NAT (STUN)’
- RFC5389 - ‘Session Traversal Utilities for NAT (STUN)’
- RFC3489 - ‘STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)’
§Message
§Message Parsing
Message parsing is zerocopy by default through the RawAttribute
struct. Converting to a concrete attribute implementation (such as
Software) may incur a copy depending on the attribute
implementation.
§Message writing
The destination for a written Message is completely customizable through the
MessageWrite trait. It is therefore possible to write directly
into network provided buffers for increased performance and throughput.
MessageWriteVec provides a simple implementation of
message writing that will write into a newly allocated Vec<u8>.
§Attribute
An Attribute implementation can be implemented entirely
outside of this crate and used exactly the same as an Attribute implemented within this crate.
Look at attribute module level documentation for an example of defining your own
Attribute.
For TURN-related attributes, have a look at the turn-types crate which uses this crate to implement STUN attributes for TURN.
§Examples
See the message and attribute module documentation for examples of use.
Modules§
Macros§
- attribute_
display - Implement an
AttributeDisplayclosure for anAttributefrom aRawAttributeand callsadd_display_implwith the generated closure.
Enums§
- Address
Family - The address family of a socket
- Parse
Transport Type Error - Errors when parsing a
TransportType - Transport
Type - The transport family