Files

go-sam-go/raw

High-level raw datagram library for unencrypted message delivery over I2P using the SAMv3 protocol.

Installation

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

Usage

The package provides unencrypted raw datagram messaging over I2P networks. RawSession manages the session lifecycle, RawReader handles incoming raw datagrams, RawWriter sends outgoing raw datagrams, and RawConn implements the standard net.PacketConn interface for seamless integration with existing Go networking code.

Create sessions using NewRawSession, 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 compatibility, I2P destination management, base64 payload encoding, and concurrent raw 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