n2k


Read and write structured NMEA 2000 CAN messages using Go.

github.com/open-ships/n2k | pkg.go.dev/github.com/open-ships/n2k

Features

  • Typed PGN’s for vessel, engine, navigation, electrical, environmental, AIS, and system data
  • Read and write to live NMEA 2000 networks
  • SocketCAN, USB-CAN, and replay sources supported
  • Automatic ISO 11783 address claiming for transmitting devices
  • Fast-packet and transport-protocol handling for multi-frame messages
  • CEL-based filtering for PGN metadata and decoded message fields
  • Iterator, Scanner, and Client APIs for different integration styles
  • Replay testing for deterministic development without hardware
  • Sniffer CLI for inspecting decoded network traffic as JSON