Packet.Ax25.Sdl
0.10.0
dotnet add package Packet.Ax25.Sdl --version 0.10.0
NuGet\Install-Package Packet.Ax25.Sdl -Version 0.10.0
<PackageReference Include="Packet.Ax25.Sdl" Version="0.10.0" />
<PackageVersion Include="Packet.Ax25.Sdl" Version="0.10.0" />
<PackageReference Include="Packet.Ax25.Sdl" />
paket add Packet.Ax25.Sdl --version 0.10.0
#r "nuget: Packet.Ax25.Sdl, 0.10.0"
#:package Packet.Ax25.Sdl@0.10.0
#addin nuget:?package=Packet.Ax25.Sdl&version=0.10.0
#tool nuget:?package=Packet.Ax25.Sdl&version=0.10.0
ax25sdl
Canonical AX.25 v2.2 SDL transcriptions, plus a codegen pipeline that turns them into ready-to-consume libraries in seven languages. The point of this repo is to encode the figc4.x state-machine figures from the AX.25 v2.2 specification once, with discipline, and emit that single source of truth as native idiomatic code for C#, Go, TypeScript, JSON, Rust, C, and Python. Downstream runtimes walk the generated tables — they don't have an opinion of their own about what AX.25 says.
Status: prove-out repo. Whether
packethacking/ax25specbecomes the canonical community home for these transcriptions is still to be decided among the group.
Inputs
| Path | What |
|---|---|
spec-sdl/v2.2-errata/data-link/ |
The figc4.1 – figc4.7 data-link state machine (v2.2 + errata), split by artefact kind: sdl/ holds the canonical *.graphml yEd sources, yaml/ holds the *.sdl.yaml transcriptions (derived) plus the *.citations.yaml human-curated sidecars, mmd/ holds the *.g.mmd Mermaid renderings (derived). |
spec-sdl/v2.2/ |
Clean published v2.2 (black-only, no errata). Currently empty — backfill pending. |
spec-sdl/schema/ |
JSON Schema for *.sdl.yaml |
spec-sdl/actions.yaml |
Action-verb normalisation table (figure spellings → canonical verbs) |
spec-sdl/events.yaml |
Canonical event catalog |
| Upstream | The AX.25 v2.2 specification figures themselves — the source of truth for every transcription |
Outputs
| Artefact | Where | Name | In-repo source |
|---|---|---|---|
| C# library | NuGet | Packet.Ax25.Sdl |
spec/csharp/ |
| TypeScript library | npm | ax25sdl |
spec/ts/ |
| Go module | git | github.com/m0lte/ax25sdl/spec/go |
spec/go/ |
| Rust / C / Python / JSON | not externally packaged | codegen output for in-tree consumers | per-backend dirs |
Tagging v* on main fires .github/workflows/publish.yml — NuGet + npm publish from the same tag, version taken from the tag stripped of its leading v.
Discipline
The transcription rules and how to add a new figure live in:
docs/sdl-primer.md— SDL shape referencedocs/sdl-transcription-runbook.md— end-to-end per-figure workflowdocs/sdl-verb-catalogue.md— action-verb normalisationdocs/adr/0001-sdl-dsl.md— why YAML + codegen rather than hand-written tables
Provenance
Extracted from m0lte/packet.net on 2026-05-17 — the transcriptions and codegen previously lived alongside the .NET runtime in that monorepo. History preserved via git filter-repo.
Sibling repos
| Repo | What it consumes from here |
|---|---|
m0lte/packet.net |
Packet.Ax25.Sdl (NuGet) |
m0lte/ax25-ts |
ax25sdl (npm) |
m0lte/packet-term-tui |
transitive: Packet.Ax25 → Packet.Ax25.Sdl |
m0lte/packet-term-web |
transitive: @packet-net/ax25 → ax25sdl |
License
MIT. Spec text and figures derive from the AX.25 v2.2 specification; the transcription discipline that turns figures into machine-checkable YAML is documented in docs/sdl-transcription-runbook.md.
| Product | Versions 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. |
-
net10.0
- No dependencies.
NuGet packages (4)
Showing the top 4 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/m0lte/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/m0lte/packet.net. |
|
|
Packet.Kiss.Serial
Generic serial-port KISS modem implementing IKissModem 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/m0lte/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/m0lte/packet.net. |
GitHub repositories
This package is not used by any popular GitHub repositories.