Packet.Ax25.Sdl 0.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Packet.Ax25.Sdl --version 0.3.0
                    
NuGet\Install-Package Packet.Ax25.Sdl -Version 0.3.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.Ax25.Sdl" Version="0.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Packet.Ax25.Sdl" Version="0.3.0" />
                    
Directory.Packages.props
<PackageReference Include="Packet.Ax25.Sdl" />
                    
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.Ax25.Sdl --version 0.3.0
                    
#r "nuget: Packet.Ax25.Sdl, 0.3.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.Ax25.Sdl@0.3.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.Ax25.Sdl&version=0.3.0
                    
Install as a Cake Addin
#tool nuget:?package=Packet.Ax25.Sdl&version=0.3.0
                    
Install as a Cake Tool

ax25sdl

AX.25 v2.2 SDL transcriptions, codegen, and multi-language artefacts.

This repo holds the canonical SDL transcriptions for the connected-mode link-layer state machines (figc4.1 through figc4.7) and the codegen pipeline that turns them into ready-to-consume libraries in seven languages: C#, Go, TypeScript, JSON, Rust, C, and Python.

Status: prove-out repo. Tom (M0LTE) is working with the original AX.25 spec authors on whether packethacking/ax25spec should be the canonical community home. Until that's agreed, this repo lives at m0lte/ax25sdl and downstream consumers (e.g. m0lte/packet.net) pull from here.

Layout

spec-sdl/                          YAML DSL + JSON schema — human-authored transcriptions
spec-sdl/data-link/*.sdl.yaml      transcribed state pages (figc4.x)
spec-sdl/data-link/*.graphml       yEd source for the transcribed figures
spec-sdl/schema/                   JSON Schema for the *.sdl.yaml files
spec-sdl/actions.yaml              action-verb normalisation table
spec-sdl/events.yaml               canonical event catalog

tools/Packet.Sdl.IR/               language-neutral IR + validation
tools/Packet.Sdl.CodeGen/          thin orchestrator (driver)
tools/Packet.Sdl.CodeGen.Csharp/   C# emitter (Scriban + Roslyn)
tools/Packet.Sdl.CodeGen.Go/       Go emitter (hand-rolled, gofmt-finalised)
tools/Packet.Sdl.CodeGen.Ts/       TypeScript emitter
tools/Packet.Sdl.CodeGen.Json/     JSON emitter (codified IR for non-C# consumers)
tools/Packet.Sdl.CodeGen.Rust/     Rust emitter
tools/Packet.Sdl.CodeGen.C/        C emitter
tools/Packet.Sdl.CodeGen.Python/   Python emitter
tools/Packet.Sdl.Lint/             standalone schema lint

src/Packet.Ax25.Sdl/               C# package (NuGet: Packet.Ax25.Sdl)
go-spec/                           Go module (github.com/m0lte/ax25sdl/go-spec)
ts-spec/                           npm package (ax25sdl)

tests/Packet.Sdl.CodeGen.Tests/    codegen tests

docs/sdl-primer.md                 SDL shape reference
docs/sdl-transcription-runbook.md  end-to-end per-figure workflow
docs/sdl-verb-catalogue.md         action-verb normalisation reference
docs/adr/0001-sdl-dsl.md           why the YAML DSL + codegen exists

Common commands

# Build the codegen tools + C# library
dotnet build

# Run codegen tests
dotnet test

# Regenerate all backends (writes into src/Packet.Ax25.Sdl/, ts-spec/, go-spec/, etc.)
dotnet run --project tools/Packet.Sdl.CodeGen

# Regenerate a single backend
dotnet run --project tools/Packet.Sdl.CodeGen -- --csharp
dotnet run --project tools/Packet.Sdl.CodeGen -- --go
dotnet run --project tools/Packet.Sdl.CodeGen -- --ts
dotnet run --project tools/Packet.Sdl.CodeGen -- --rust
dotnet run --project tools/Packet.Sdl.CodeGen -- --c
dotnet run --project tools/Packet.Sdl.CodeGen -- --python
dotnet run --project tools/Packet.Sdl.CodeGen -- --json

# Verify the generated Go compiles + passes gofmt
cd go-spec && go build ./... && go vet ./... && go test ./... && gofmt -l .

# Verify the generated TS typechecks + tests pass
cd ts-spec && npm ci && npm run typecheck && npm test

What's published

Artefact Package manager Name Source
C# library NuGet Packet.Ax25.Sdl src/Packet.Ax25.Sdl/
TypeScript library npm ax25sdl ts-spec/
Go module git github.com/m0lte/ax25sdl/go-spec go-spec/
Rust crate tbd tbd tools/Packet.Sdl.CodeGen.Rust/ output
C / Python / JSON tbd tbd codegen output

License

MIT — see LICENSE for details. Spec text and figures are derived from the AX.25 v2.2 specification; this repo's transcription discipline is documented in docs/sdl-transcription-runbook.md.

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 (8)

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

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.Kiss

KISS (Keep It Simple, Stupid) framing encoder/decoder, ACKMODE handling, multi-drop port support, and TCP transport. Decodes KISS-Data payloads into typed Ax25Frame events. Pair with Packet.Ax25 for connected-mode sessions. Source: github.com/packet-net/packet.net.

Packet.Kiss.Serial

Generic serial-port KISS modem implementing IAx25Transport for the Packet.NET stack. Opens a USB-CDC or hardware serial port, speaks KISS framing in both directions, and surfaces inbound frames as an async stream. Pair with Packet.Kiss.NinoTnc for NinoTNC-specific extensions (ACKMODE, SetMode, frame classification). Source: github.com/packet-net/packet.net.

Packet.Kiss.NinoTnc

NinoTNC-specific KISS extensions for the Packet.NET stack — ACKMODE TX-completion correlation, SETHW mode switching, TX-Test frame classification, USB port discovery. Built on Packet.Kiss.Serial for generic serial-port plumbing. 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.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.10.2 48 7/18/2026
0.10.1 44 7/18/2026
0.10.0 1,412 6/3/2026
0.9.0 111 6/2/2026
0.8.0 114 6/2/2026
0.7.1 363 5/28/2026
0.7.0 164 5/28/2026
0.6.0 180 5/27/2026
0.5.3 114 5/21/2026
0.5.2 107 5/21/2026
0.5.1 110 5/20/2026
0.5.0 102 5/20/2026
0.4.0 112 5/19/2026
0.3.0 132 5/17/2026