Files
go-sam-go/datagram/README.md
2025-05-29 18:45:52 -04:00

1.5 KiB

package datagram

High-level datagram library for UDP-like message delivery over I2P using the SAMv3 protocol.

Installation

Install using Go modules with the package path github.com/go-i2p/go-sam-go/datagram.

Usage

The package provides UDP-like datagram messaging over I2P networks. DatagramSession manages the session lifecycle, DatagramReader handles incoming datagrams, DatagramWriter sends outgoing datagrams, and DatagramConn implements the standard net.PacketConn interface for seamless integration with existing Go networking code.

Create sessions using NewDatagramSession, send messages with SendDatagram(), and receive messages using ReceiveDatagram(). The implementation supports I2P address resolution, configurable tunnel parameters, and comprehensive error handling with proper resource cleanup.

Key features include full net.PacketConn and net.Conn compatibility, I2P destination management, base64 payload encoding, and concurrent datagram processing with proper synchronization.

Dependencies

  • github.com/go-i2p/go-sam-go/common - Core SAM protocol implementation
  • github.com/go-i2p/i2pkeys - I2P cryptographic key handling
  • github.com/go-i2p/logger - Logging functionality
  • github.com/sirupsen/logrus - Structured logging
  • github.com/samber/oops - Enhanced error handling