Repository navigation
RayNetworkBridge v0.1.0
Public Engineering Reference — AS-IS. First standalone Python source-release scope.
RayNetworkBridge exposes an existing Linux SocketCAN interface to compatible
RN2K/1 TCP clients, including RayNmeaSimulator Network NMEA2000. It transports
Classic CAN frames and leaves NMEA decoding and device identity to the client.
- RX access restricted by network binding and optional CIDR allowlists.
- Shared-key HMAC-SHA256 authorization for TX and bounded route-service sessions.
- Multiple clients, origin/sequence metadata, bounded queues and physical pacing.
- Explicit fault/lease handling; no automatic reauthorization or stale TX retries.
- Existing Linux vcan support and a CAN-free in-process virtual test hub.
- Matching deployed source is advertised and retrievable from the same listener
without a key or a dependency on GitHub access, subject to the RX IP allowlist. - Failed CAN startup releases its socket; regression coverage is included.
Requirements: Python 3.9+ API compatibility (use a supported distribution Python),
Linux SocketCAN and iproute2 for physical CAN. No pip dependencies or compiled
installer. Install the complete source tree and follow README.md.
The bridge does not configure CAN, install a service, decode NMEA PGNs, implement
NMEA 0183/CAN FD or provide TLS. RX is not individually authenticated. Service
PGN filtering is coarse and is not a safety-critical authorization boundary.
Do not use this tool as an operational navigation or vessel-control system.
Source and tests are AGPL-3.0-or-later. Read the source-availability and security
instructions before deploying a modified version or exposing a listener.
Source download and verification
Download RayNetworkBridge-0.1.0.tar.gz (33,855 bytes).
The archive contains the complete approved Python source, tests, README, protocol,
release notes, full AGPL license and provenance under RayNetworkBridge-0.1.0/.
No binaries, installers or managed service are included.
Source commit: 9d2dac04a9374aca93e37b558c7aed7ac24c5607.
The annotated v0.1.0 tag is fixed to this accepted source.
SHA-256: a7418bfe39901baab2b39faa89a50061e32eca25bd1861b42882466404323223
Extract the source archive, enter its versioned directory and follow README.md.
Run python3 -B -m unittest discover -s tests -p '*tests.py' -v for the 25 focused
loopback/mocked-CAN tests. Physical operation requires an already configured
Linux SocketCAN interface and iproute2. No pip packages are required.
Matching source for a running deployment can be retrieved with
tools/network-can/get_source.py as documented in the README. This identifies
that deployment's actual source snapshot, including later operator changes;
it does not assume all deployments match this release.