Packet.Core 0.20.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Packet.Core --version 0.20.0
                    
NuGet\Install-Package Packet.Core -Version 0.20.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Packet.Core" Version="0.20.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Packet.Core" Version="0.20.0" />
                    
Directory.Packages.props
<PackageReference Include="Packet.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Packet.Core --version 0.20.0
                    
#r "nuget: Packet.Core, 0.20.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Packet.Core@0.20.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Packet.Core&version=0.20.0
                    
Install as a Cake Addin
#tool nuget:?package=Packet.Core&version=0.20.0
                    
Install as a Cake Tool

Packet.Core

Shared primitive types for the Packet.NET amateur-radio stack.

Packet.Core holds the small, dependency-free building blocks the rest of the stack is built on: callsigns, AX.25 address slots, the FCS CRC, and the strict-vs-pragmatic parse options. It's the foundation package that Packet.Ax25, Packet.Kiss, Packet.Aprs and downstream applications depend on. Part of Packet.NET, a .NET amateur-radio / AX.25 packet stack.

Install

dotnet add package Packet.Core

Quick start

using Packet.Core;

// Parse a human-typed callsign ("BASE" or "BASE-SSID"), strictly.
var call = Callsign.Parse("Q0PDN-7");
Console.WriteLine(call.Base);      // "Q0PDN"
Console.WriteLine(call.Ssid);      // 7
Console.WriteLine(call.ToString()); // "Q0PDN-7"

// Encode one 7-octet AX.25 address slot, then read it back.
var addr = new Ax25Address(call, CrhBit: true, ExtensionBit: false);
Span<byte> slot = stackalloc byte[Ax25Address.EncodedLength]; // 7
addr.Write(slot);

var decoded = Ax25Address.Read(slot);       // lenient by default
Console.WriteLine(decoded == addr);          // True (round-trips)

// Strict spec parsing: reject pragmatic accommodations (e.g. all-space slots).
var strict = Ax25Address.Read(slot, Ax25ParseOptions.Strict);

// AX.25 frame check sequence (CRC-16/X-25).
ushort fcs = Crc16Ccitt.Compute("123456789"u8); // 0x906E

Callsign.Parse / TryParse stay strict (≥1 char, A–Z / 0–9, SSID 0–15) because they're for user-typed input. The wire-parse path (Ax25Address.Read) is lenient by default — it accepts real-world quirks like all-space address slots — and you opt into strictness via Ax25ParseOptions.Strict.

Key types

  • Callsign — a base callsign + SSID (0–15) value type, with strict Parse/TryParse over text.
  • Ax25Address — one 7-octet AX.25 header address slot; Read/Write between the value and its wire form, with the C/H and extension bits.
  • Ax25ParseOptions — named, individually-toggleable pragmatic-parse flags with Strict / Lenient and peer presets (Bpq, Xrouter, Direwolf).
  • Crc16Ccitt — the AX.25 frame check sequence (CRC-16/X-25, polynomial 0x1021).

See also


MIT-licensed. Part of the Packet.NET stack.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages (5)

Showing the top 5 NuGet packages that depend on Packet.Core:

Package Downloads
Packet.Ax25

AX.25 v2.2 protocol library: frame codec for U/S/I frames with mod-8 sequence numbers, SDL-driven connected-mode session machine, Ax25Listener for inbound session acceptance with per-peer caching, AcceptIncoming toggle, and frame-traced event hooks. Walks the AX.25 SDL transitions from Packet.Ax25.Sdl. Source: github.com/packet-net/packet.net.

Packet.Axudp

AXUDP transport for the Packet.NET stack: AxudpSocket, a bidirectional AX.25-over-IP (RFC 1226) endpoint that UDP-encapsulates AX.25 frames. It unconditionally appends + validates the 2-octet AX.25 FCS (CRC-16-CCITT) exactly as every real AXIP/AXUDP peer does (ax25ipd, LinBPQ BPQAXIP, XRouter), with a raw escape hatch for replaying captures. Source: github.com/packet-net/packet.net.

Packet.Aprs

Automatic Packet Reporting System (APRS) payload parsing per APRS12c.pdf — position (the four DTI variants !, =, /, @), mic-E (`, '), message, object, item, status, and telemetry, with Strict/Lenient/Direwolf/AprsIs parse-option presets. Decode-focused. Source: github.com/packet-net/packet.net.

Packet.NetRom

NET/ROM networking for the Packet.NET stack: the L3 routing layer (NODES broadcasts, routing table + quality model), the L4 circuit state machine (CircuitManager / NetRomCircuit), and the INP3 time-routing overlay (L3RTT, RIF/RIP) — with BPQ / XRouter / Strict / Lenient quirk profiles pinned to real on-air behaviour. Build a .NET NET/ROM node or router on top of Packet.Ax25. Source: github.com/packet-net/packet.net.

Packet.Tune.Core

Coordination primitives for tuning a NinoTNC + radio pair with the two ends apart: the tuning-telegram protocol (ITuningLink), an SDM flavour riding the radio's own side channel (Packet.Radio.IRadioSideChannel; Tait CCDI short data messages — radio-native FFSK, independent of the TNC mode/pot under tune), a WebSocket flavour with a PIN-rendezvous relay, the shared meter/tuned assistant loop, a mode-coordination protocol (propose/confirm/commit a TNC mode + radio channel switch, probe-verify, revert-to-home on failure), and a capability doctor for the whole TNC↔radio stack. Source: github.com/packet-net/packet.net.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.24.0 55 7/20/2026
0.23.0 177 7/14/2026
0.22.0 183 7/14/2026
0.21.0 187 7/9/2026
0.20.0 185 7/5/2026
0.19.0 188 7/5/2026
0.18.0 185 7/5/2026
0.17.0 179 6/23/2026
0.16.0 177 6/23/2026
0.15.0 174 6/23/2026
0.14.0 149 6/22/2026
0.13.0 152 6/22/2026
0.12.0 147 6/21/2026
0.11.0 156 6/18/2026
0.10.0 143 6/17/2026
0.9.0 256 6/17/2026
0.8.0 151 6/12/2026
0.7.0 143 6/10/2026
0.6.1 156 6/7/2026
0.6.0 151 6/5/2026
Loading failed