Architecture

Detailed-design specifications. Pages under this section follow the arc42 template (12 sections) encoded with sphinx-needs using the useblocks “x-as-code” arc42 directive types — arch-decision, building-block, architecture, constraint, quality-goal, risk, glossary. Legacy spec directives may also appear for detailed-design notes that predate the arc42 adoption.

Building blocks

Used filter: types(building-block)

ID

Title

Status

Implements

BB_0001

taktora-connector-core

open

REQ_0220; REQ_0221; REQ_0222

BB_0002

taktora-connector-transport-iox

open

REQ_0200; REQ_0205; REQ_0206

BB_0003

taktora-connector-codec

open

REQ_0210; REQ_0212; REQ_0215; REQ_0989

BB_0004

taktora-connector-mqtt

open

REQ_0250; REQ_0251; REQ_0258

BB_0005

taktora-connector-host

open

REQ_0270; REQ_0271; REQ_0272

BB_0010

ConnectorEnvelope (sub-block of BB_0002)

open

REQ_0200; REQ_0201; REQ_0202; REQ_0203; REQ_0204

BB_0011

ServiceFactory (sub-block of BB_0002)

open

REQ_0206

BB_0020

MqttConnector (sub-block of BB_0004, plugin side)

open

REQ_0250; REQ_0251

BB_0021

MqttGateway (sub-block of BB_0004, gateway side)

open

REQ_0258; REQ_0259; REQ_0260; REQ_0261

BB_0022

Tokio bridge (sub-block of BB_0021)

open

REQ_0259; REQ_0260; REQ_0261

BB_0023

Dispatch scratch (pre-allocated)

open

REQ_0060

BB_0024

taktora-bounded-alloc crate

open

REQ_0300; REQ_0301; REQ_0302; REQ_0303; REQ_0304

BB_0025

Cyclic scan trigger and dispatch

implemented

FEAT_0011

BB_0026

Iceoryx2 channel surface (Channel / Publisher / Subscriber)

implemented

FEAT_0012

BB_0027

Chain and DAG sequencing primitives

implemented

FEAT_0013

BB_0028

Deadline trigger and timing monitor

implemented

FEAT_0014

BB_0029

ThreadAttributes (worker affinity and priority)

implemented

FEAT_0015

BB_0030

taktora-connector-ethercat

open

REQ_0310; REQ_0311; REQ_0312; REQ_0321

BB_0031

EthercatConnector (sub-block of BB_0030, plugin side)

open

REQ_0310; REQ_0311

BB_0032

EthercatGateway (sub-block of BB_0030, gateway side)

open

REQ_0312; REQ_0313; REQ_0325

BB_0033

PDO mapping (sub-block of BB_0030)

open

REQ_0314; REQ_0315

BB_0034

Tokio bridge for ethercrab (sub-block of BB_0030)

open

REQ_0322; REQ_0323; REQ_0324

BB_0035

Cooperative shutdown (Stoppable + WaitSet stop wakeup)

implemented

FEAT_0016

BB_0040

taktora-connector-zenoh

open

REQ_0400; REQ_0420; REQ_0440; REQ_0444

BB_0041

ZenohConnector (sub-block of BB_0040, plugin side)

open

REQ_0400; REQ_0401; REQ_0420

BB_0042

ZenohGateway (sub-block of BB_0040, gateway side)

open

REQ_0403; REQ_0426; REQ_0440; REQ_0442

BB_0043

Zenoh query handles (sub-block of BB_0041)

open

REQ_0420; REQ_0421; REQ_0422; REQ_0423; REQ_0424

BB_0044

Tokio bridge for zenoh (sub-block of BB_0042)

open

REQ_0403; REQ_0404; REQ_0405; REQ_0406

BB_0045

taktora-connector-ui-contract crate

open

REQ_0857; REQ_0869; REQ_0873; REQ_0874; REQ_0875

BB_0046

taktora-connector-ui crate (server)

open

REQ_0855; REQ_0856; REQ_0857; REQ_0860; REQ_0861; REQ_0862; REQ_0863; REQ_0865; REQ_0866; REQ_0867; REQ_0870; REQ_0871; REQ_0872; REQ_0879; REQ_0883; REQ_0884

BB_0047

taktora-connector-ui-derive crate

open

REQ_0858; REQ_0859; REQ_0868; REQ_0878

BB_0048

taktora-connector-ui-client crate

open

REQ_0864; REQ_0876; REQ_0877; REQ_0880; REQ_0881; REQ_0882

BB_0050

Per-task cycle statistics

open

REQ_0100; REQ_0105; REQ_0106

BB_0051

Statistics snapshot view

open

REQ_0103; REQ_0105; REQ_0106

BB_0052

xtask-preempt-rt harness

open

REQ_0111

BB_0053

taktora-stats crate

open

REQ_0104; REQ_0105

BB_0054

Connector cycle telemetry

open

REQ_0262; REQ_0263; REQ_0264; REQ_0265; REQ_0266; REQ_0267

BB_0060

ethercat-esi (parser crate)

open

FEAT_0051

BB_0061

ethercat-esi-codegen (IR + backend trait)

open

FEAT_0052

BB_0062

ethercat-esi-codegen-ethercrab (concrete backend)

open

FEAT_0053

BB_0063

ethercat-esi-rt (runtime trait crate)

open

FEAT_0054

BB_0064

ethercat-esi-build (build.rs glue)

open

FEAT_0055

BB_0065

ethercat-esi-cli (cargo subcommand)

open

FEAT_0056

BB_0066

ethercat-esi-verify (EEPROM diff tool)

open

FEAT_0057

BB_0067

taktora-connector-ethercat EsiDevice adapter

open

FEAT_0050

BB_0070

taktora-connector-can crate

open

REQ_0600; REQ_0602; REQ_0603; REQ_0604; REQ_0605

BB_0071

CanConnector (sub-block of BB_0070, plugin side)

open

REQ_0600; REQ_0601; REQ_0612; REQ_0615; REQ_0621

BB_0072

CanGateway (sub-block of BB_0070, gateway side)

open

REQ_0613; REQ_0614; REQ_0620; REQ_0624; REQ_0625; REQ_0630; REQ_0631

BB_0073

Tokio bridge for CAN (sub-block of BB_0072)

open

REQ_0605; REQ_0606; REQ_0607; REQ_0608

BB_0074

Per-iface filter compiler (sub-block of BB_0072)

open

REQ_0622; REQ_0623; REQ_0624

BB_0075

MockCanInterface (sub-block of BB_0070)

open

REQ_0604

BB_0080

fieldbus-od-core

open

FEAT_0061

BB_0081

canopen-eds parser crate

open

FEAT_0062

BB_0082

canopen-eds-codegen

open

FEAT_0063

BB_0083

canopen-eds-codegen-taktora

open

FEAT_0064

BB_0084

canopen-eds-rt

open

FEAT_0065

BB_0085

canopen-eds-build

open

FEAT_0066

BB_0086

canopen-eds-cli

open

FEAT_0067

BB_0087

canopen-eds-verify

open

FEAT_0068

BB_0088

taktora-connector-can adapter (follow-on)

open

FEAT_0060

BB_0090

taktora-log facade crate

open

FEAT_0071

BB_0091

taktora-log-dlt DLT-backend crate

open

FEAT_0072

BB_0092

DLT daemon client (within taktora-log-dlt)

open

FEAT_0072

BB_0093

Cycle-overrun fault primitive surface

implemented

FEAT_0018

BB_0094

Framework fail-fast boundary

open

FEAT_0024

BB_0095

Absolute-grid timer and cyclic scheduling clock

implemented

REQ_0268

BB_0096

ethercat-netcfg SM-watchdog resolution and validation

open

FEAT_0085

BB_0097

Large-payload slice channel (transport-iox)

implemented

REQ_0885; REQ_0886; REQ_0887; REQ_0888; REQ_0889

BB_0098

taktora-connector-j1939 crate

implemented

REQ_0890; REQ_0899

BB_0099

J1939Connector (sub-block of BB_0098, plugin side)

implemented

REQ_0890; REQ_0891

BB_0100

J1939Gateway (sub-block of BB_0098, gateway side)

implemented

REQ_0890; REQ_0895; REQ_0896; REQ_0898

BB_0101

J1939 transport-protocol state machine (sub-block of BB_0100)

implemented

REQ_0892; REQ_0893; REQ_0894; REQ_0895; REQ_0896

BB_0102

J1939 address-claim state machine (sub-block of BB_0100)

implemented

REQ_0897; REQ_0898

BB_0103

MockJ1939Interface (sub-block of BB_0098)

implemented

REQ_0899

BB_0104

taktora-medkit-model

open

REQ_0914; REQ_0915; REQ_0916

BB_0105

taktora-medkit-provider

open

REQ_0913; REQ_0916; REQ_0929

BB_0106

taktora-medkit-gateway

open

REQ_0912; REQ_0916; REQ_0917; REQ_0929

BB_0107

taktora-medkit-gateway-axum

open

REQ_0911; REQ_0916; REQ_0917; REQ_0918; REQ_0919

BB_0108

taktora-medkit-binding-executor

implemented

REQ_0910; REQ_0913; REQ_0923; REQ_0924; REQ_0925

BB_0109

taktora-medkit-binding-connector

implemented

REQ_0910; REQ_0912; REQ_0926; REQ_0927; REQ_0928

BB_0110

taktora-medkit-manifest

implemented

REQ_0920; REQ_0921; REQ_0922; REQ_0916

BB_0111

triggers + SSE event stream

implemented

REQ_0930; REQ_0931; REQ_0932; REQ_0933; REQ_0934

BB_0112

Authenticator seam (auth-light)

implemented

REQ_0935; REQ_0936; REQ_0937; REQ_0938; REQ_0939

BB_0113

diagnostic lock registry

implemented

REQ_0940; REQ_0941; REQ_0942; REQ_0943; REQ_0944

BB_0114

taktora-idl-codegen

implemented

FEAT_0114

BB_0115

taktora-idl-codegen-can

implemented

FEAT_0115

BB_0116

taktora-idl-codegen-can-tests

implemented

FEAT_0115

BB_0117

taktora-idl-core

implemented

FEAT_0111

BB_0118

taktora-idl-wire

implemented

FEAT_0112

BB_0119

taktora-idl-dbc

implemented

FEAT_0113

BB_0120

SSE replay ring + keep-alive

open

REQ_0961; REQ_0966

BB_0121

ActionSink write seam + operations surface

open

REQ_0969; REQ_0970; REQ_0971; REQ_0972; REQ_0973; REQ_0974; REQ_0975

BB_0122

Read-family completion

open

REQ_0976; REQ_0977; REQ_0978; REQ_0979

BB_0123

Build identity — capture crate + injection seam

open

REQ_0990

Architecture views (context, runtime, deployment, crosscutting)

Used filter: types(architecture)

ID

Title

Status

Refines

ARCH_0001

System context

open

FEAT_0030

ARCH_0002

Level-1 building block decomposition

open

BB_0001; BB_0002; BB_0003; BB_0004; BB_0005; BB_0030; BB_0040

ARCH_0010

Send path (app → broker)

open

REQ_0205; BB_0021; BB_0022

ARCH_0011

Receive path (broker → app)

open

REQ_0205; REQ_0254; BB_0021; BB_0022

ARCH_0012

Health and reconnect lifecycle

open

REQ_0230; REQ_0234; BB_0021

ARCH_0013

Shutdown coordination

open

REQ_0243; BB_0005; BB_0021

ARCH_0020

In-process gateway deployment

open

REQ_0240; REQ_0241

ARCH_0021

Separate-process gateway deployment

open

REQ_0240; REQ_0242

ARCH_0030

Codec — compile-time generic

open

ADR_0005; BB_0003

ARCH_0031

Error handling — single error type, explicit origins

open

REQ_0213; REQ_0214

ARCH_0032

Observability — Observer + ExecutionMonitor adapter

open

REQ_0273; BB_0005

ARCH_0033

Back-pressure — explicit at every bounded buffer

open

REQ_0260; REQ_0261

ARCH_0040

EtherCAT bus bring-up sequence

open

REQ_0313; REQ_0314; REQ_0315; BB_0032; BB_0033

ARCH_0041

Cyclic process-data exchange and working-counter health

open

REQ_0316; REQ_0317; REQ_0319; REQ_0320; BB_0032; BB_0034

ARCH_0042

Optional Distributed Clocks bring-up

open

REQ_0318; BB_0032

ARCH_0043

Zenoh query request/response flow

open

REQ_0420; REQ_0421; REQ_0423; REQ_0424; BB_0042; BB_0043

ARCH_0050

Toolchain layering (crate dependency graph)

open

FEAT_0050

ARCH_0051

Build-time vs runtime separation

open

FEAT_0050

ARCH_0052

Build-time generation flow

open

FEAT_0055

ARCH_0053

Preop bring-up flow (per device)

open

FEAT_0054

ARCH_0054

Toolchain crate placement in workspace

open

FEAT_0050

ARCH_0060

CAN frame send path (app → bus)

open

REQ_0613; REQ_0621; BB_0072; BB_0073

ARCH_0061

CAN receive path with multi-iface demux

open

REQ_0614; REQ_0620; REQ_0622; REQ_0624; BB_0072; BB_0074

ARCH_0062

CAN bus health and bus-off recovery

open

REQ_0630; REQ_0632; REQ_0633; REQ_0634; REQ_0635; BB_0072

ARCH_0070

Toolchain layering (crate dependency graph)

open

FEAT_0060

ARCH_0071

Build-time vs runtime separation

open

FEAT_0060

ARCH_0072

Logging runtime data flow

open

FEAT_0070

ARCH_0073

Logging control-plane (runtime level changes)

open

FEAT_0075

ARCH_0080

medkit crate decomposition

open

BB_0104; BB_0105; BB_0106; BB_0107; BB_0108; BB_0109; BB_0110

ARCH_0081

Toolchain layering (crate dependency graph)

implemented

FEAT_0110

ARCH_0082

Build-time vs runtime separation

implemented

FEAT_0110

Architecture decisions

Used filter: types(arch-decision)

ID

Title

Status

Refines

ADR_0001

Spec scope — framework core + MQTT reference

open

FEAT_0030

ADR_0002

Umbrella feature is a peer of FEAT_0010

open

FEAT_0030

ADR_0003

Both deployment shapes supported

open

FEAT_0035

ADR_0004

Per-channel envelope size, declared in descriptor

open

REQ_0201

ADR_0005

Codec is a generic parameter on the connector

open

REQ_0211

ADR_0006

Explicit-builder plugin discovery

open

REQ_0270

ADR_0007

Plugin and gateway are both taktora-executor consumers

open

CON_0001

ADR_0008

Routing carried as a typed struct

open

REQ_0221

ADR_0009

Lifecycle = ReconnectPolicy + ConnectorHealth

open

FEAT_0034

ADR_0010

MQTT scope — realistic but bounded

open

FEAT_0036

ADR_0011

Pre-allocate dispatch scratch at Executor::build time

open

REQ_0060

ADR_0012

Compile-time caps + hand-rolled fixed-block bitmap

open

REQ_0300

ADR_0020

ethercrab as the EtherCAT MainDevice library

open

FEAT_0041

ADR_0021

Single MainDevice per gateway

open

REQ_0312

ADR_0022

Static PDO mapping declared at build time

open

REQ_0314; REQ_0315

ADR_0023

Distributed Clocks bring-up is opt-in

open

REQ_0318

ADR_0024

Linux raw socket only in first cut

open

REQ_0325

ADR_0025

``taktora-connector-ethercat`` module decomposition

open

FEAT_0041

ADR_0026

Tokio runtime owned by ``EthercatGateway``, joined on Drop

open

REQ_0321

ADR_0027

``EthercatConnectorOptions`` is a typed builder; PDO map declared as ``&'static [SubDeviceMap]``

open

REQ_0314; REQ_0315

ADR_0028

Verification harness — pure-logic unit tests + env-gated bus tests

open

FEAT_0041

ADR_0040

Zenoh queries live on a concrete handle type, not the Connector trait

open

FEAT_0044

ADR_0041

Stack-internal reconnect for Zenoh — no ReconnectPolicy

open

FEAT_0045

ADR_0042

One ZenohRouting struct carries pub/sub QoS; query knobs on options

open

FEAT_0043

ADR_0043

Reply framing uses a Zenoh-private 1-byte payload prefix

open

FEAT_0044

ADR_0050

Process boundary as spatial isolation context

open

AFSR_0001; AFSR_0002

ADR_0051

Bounded allocator as spatial-determinism anchor

open

AFSR_0003

ADR_0060

Fixed-bucket histogram for percentile estimation

open

REQ_0100

ADR_0061

Harness as xtask, not CI gate

open

REQ_0112

ADR_0062

Shared no_std taktora-stats crate

open

REQ_0104

ADR_0063

Hybrid two-layer timing measurement

open

REQ_0265

ADR_0064

Motion-flavored adapted reference workload

open

REQ_0111

ADR_0065

Abort on framework-invariant violation; watchdog drives outputs safe

open

REQ_0123

ADR_0070

Parser separated from codegen (strict layering)

open

FEAT_0050

ADR_0071

Two-trait runtime split (EsiDevice + EsiConfigurable)

open

FEAT_0054

ADR_0072

PDO assignment alternatives as sum types

open

FEAT_0053

ADR_0073

Future CANopen support via shared OD IR

accepted

FEAT_0050

ADR_0074

Vendor extensions captured as opaque blobs

open

FEAT_0051

ADR_0075

Object dictionary as static table, feature-gated

open

FEAT_0054

ADR_0076

Use prettyplease, not rustfmt, for emit formatting

open

FEAT_0055

ADR_0077

cargo subcommand for inspection, not proc-macro

open

FEAT_0056

ADR_0078

Lift OD IR to fieldbus-od-core now

open

FEAT_0061

ADR_0079

fieldbus-od-core stays data-only

open

FEAT_0061

ADR_0080

Re-export from ethercat-esi, do not break it

open

FEAT_0061

ADR_0081

INI backend choice — serde-derive façade

open

FEAT_0062

ADR_0082

PDO entry dedup is structural, name-blind

open

FEAT_0063

ADR_0083

Dummy entries skip into bit offsets, not padding fields

open

FEAT_0064

ADR_0084

heapless::Vec<u8, 8> for PdoOut payload

open

FEAT_0065

ADR_0085

Async only on configure, sync on frame path

open

FEAT_0065

ADR_0086

JSON SDO-dump format with versioned schema

open

FEAT_0068

ADR_0087

Adopt the log crate as workspace logging facade

accepted

FEAT_0070

ADR_0088

Pure-Rust DLT via dlt-core; no libdlt FFI

accepted

FEAT_0072

ADR_0089

Two-crate split (facade vs DLT backend)

accepted

FEAT_0070

ADR_0090

Bridge existing tracing emitters via tracing-log

accepted

FEAT_0078

ADR_0091

Console dev fallback when no daemon configured

accepted

FEAT_0077

ADR_0092

Build-time codegen over runtime parsing

open

FEAT_0080

ADR_0093

Positional addressing; alias and identity as bring-up assertions

open

FEAT_0085

ADR_0094

Local-only ESI resolution; URLs are a vendor-and-pin step

open

FEAT_0084

ADR_0095

Working-counter expectation derived only, never overridden

open

FEAT_0085

ADR_0096

One file, one bus; multi-bus distribution deferred

open

FEAT_0081

ADR_0097

std/POSIX baseline for the parser and OD-core crates

accepted

FEAT_0051

ADR_0098

Object-safe EsiDevice, identity reuse, ethercrab behind SdoWrite

accepted

FEAT_0054

ADR_0099

f64 + libm in the trajectory core; integer increments at the drive

accepted

FEAT_0091

ADR_0100

Absolute-grid cyclic dispatch via Linux timerfd; self-computed epoll timeout fails on ms-rounding

accepted

FEAT_0011

ADR_0101

Lateness grid anchored on scan count plus dispatcher skip signal

accepted

FEAT_0021

ADR_0102

The ESI parser emits a faithful IR and never resolves configuration

accepted

FEAT_0051

ADR_0103

Startup SDOs as a typed SubDeviceMap field

accepted

REQ_0853

ADR_0104

Joint per-device OpMode enum supersedes per-direction PDO-assignment alternatives

accepted

ADR_0072

ADR_0105

Per-phase dispatch dedup via the existing pending_cycle token

accepted

FEAT_0017

ADR_0106

AttachmentMap — sorted-Vec O(log n) attachment-to-task resolution with lazy-learn dual identity

accepted

FEAT_0017

ADR_0107

UI connector is a passive, MVVM-shaped, language-neutral transport

accepted

FEAT_0092

ADR_0108

Reuse the CAN driver layer; own a userspace J1939 dispatcher

draft

FEAT_0098

ADR_0109

Two-tier delivery; ETP over a bounded growable slice channel

draft

FEAT_0098

ADR_0110

Full J1939-81 address claiming in the first cut

draft

FEAT_0098

ADR_0111

Off-path diagnostics boundary + extractable-core layout

open

FEAT_0100

ADR_0112

Snapshot/merge read seam + shape-diff contract verification

accepted

FEAT_0100

ADR_0113

Mandatory grouping manifest, applied in the merge pipeline

accepted

FEAT_0100

ADR_0114

Per-task atomic sink for the executor hook write path

accepted

ADR_0111

ADR_0115

Connector health → DTC mapping and last-sample freeze-frame

accepted

FEAT_0100

ADR_0116

Additive freeze-frame seam through the snapshot (fault_environments)

accepted

FEAT_0100

ADR_0117

Diff-derived event vocabulary over the golden frame shape

accepted

FEAT_0100

ADR_0118

Auth-light seam before real JWT/RBAC enforcement

accepted

FEAT_0100

ADR_0119

Diagnostic write surface gated by Freedom-From-Interference; only QM-scoped families are v1

accepted

FEAT_0100

ADR_0120

Locks are diagnostic-coordination-only QM metadata

accepted

FEAT_0100

ADR_0121

Two planes: a message-plane IR mirroring the device plane

accepted

FEAT_0110

ADR_0122

Split the serde-free wire runtime from host-side codegen

accepted

FEAT_0112

ADR_0123

DBC as the first frontend (bounded by construction)

accepted

FEAT_0113

ADR_0124

Plane-generic codegen with a backend trait; CAN is one backend

accepted

FEAT_0114

ADR_0125

Tier-A wire-compatibility parity pass

accepted

ADR_0126

Write plane as a port/adapter seam with a deferred safety gate

accepted

ADR_0127

Read-family completion — seam choices

accepted

ADR_0128

rumqttc EventLoop owns MQTT reconnection

draft

FEAT_0036

ADR_0129

Wildcard inbound demux via a gateway-local matcher

draft

FEAT_0036

ADR_0130

Clean session with SUBSCRIBE replay on reconnect

draft

FEAT_0036

ADR_0131

JSON default codec; MsgPackCodec built as a prerequisite

draft

FEAT_0036

ADR_0132

Compile-time build identity, captured in a leaf crate and injected as data

accepted

ADR_0133

Zero-alloc test enforcement scoped to executor + connector pre-1.0

accepted

ADR_0114

ADR_0134

Coverage measured with cargo-llvm-cov

accepted

FEAT_0120

Quality goals and constraints

Used filter: types(quality-goal)

ID

Title

Status

Refines

QG_0001

Fault isolation between protocol stack and app

open

FEAT_0030

QG_0002

Compile-time type safety end-to-end

open

FEAT_0030

QG_0003

Zero-copy data flow on the publish path

open

FEAT_0031

QG_0004

Uniform observable health across connectors

open

FEAT_0034

QG_0010

Build-time determinism (same ESI in → same code out)

open

FEAT_0050

QG_0011

Layering integrity (strict left-to-right deps)

open

FEAT_0050

QG_0012

Zero runtime cost of codegen presence

open

FEAT_0050

QG_0013

Trait stability for ecosystem adoption

open

FEAT_0054

QG_0014

Build-time determinism (same EDS in → same code out)

open

FEAT_0060

QG_0015

Layering integrity (strict left-to-right deps)

open

FEAT_0060

QG_0016

Zero runtime cost of codegen presence

open

FEAT_0060

QG_0017

Trait stability for ecosystem adoption

open

FEAT_0065

QG_0018

Backend decoupling (single facade, replaceable backend)

open

FEAT_0070

QG_0019

DLT-ecosystem observability

open

FEAT_0070

QG_0020

Low-overhead, non-blocking hot path

open

FEAT_0070

QG_0021

Dev-friendly fallback (no daemon required)

open

FEAT_0070

QG_0022

Boundedness by construction

accepted

FEAT_0111

QG_0023

Auditable runtime (serde-free, no_std, no-heap)

accepted

FEAT_0112

QG_0024

Layering integrity (strict left-to-right deps)

accepted

FEAT_0110

Used filter: types(constraint)

ID

Title

Status

Refines

CON_0001

Built on taktora-executor's WaitSet

open

FEAT_0030

CON_0002

iceoryx2 0.8.x as the IPC layer

open

FEAT_0030

CON_0003

Rust 2024 edition / MSRV 1.85

open

FEAT_0030

CON_0004

Single-threaded test discipline

open

FEAT_0030

CON_0005

Tokio sidecar contained per connector crate

open

FEAT_0030

CON_0010

cargo build-script semantics

open

FEAT_0055

CON_0011

ethercrab API surface as upstream

open

FEAT_0053

CON_0012

bitvec for process-image access

open

FEAT_0054

CON_0013

no_std + alloc baseline for parser and runtime trait

open

FEAT_0051

CON_0014

ETG owns the ESI XML schema

open

FEAT_0051

CON_0020

cargo build-script semantics

open

FEAT_0066

CON_0021

CiA 301 / 306 own the EDS schema

open

FEAT_0062

CON_0022

no_std + alloc baseline for OD core, parser, runtime

open

FEAT_0061

CON_0023

heapless 0.8 surface for fixed-capacity buffers

open

FEAT_0065

CON_0024

log crate as workspace logging facade

open

FEAT_0070

CON_0025

No build-time dependency on libdlt

open

FEAT_0072

CON_0026

std required, no_std out of scope

open

FEAT_0070

CON_0027

Logging is QM

open

FEAT_0070

CON_0028

no_std + no-deps baseline for the wire runtime

accepted

FEAT_0112

Risks

Used filter: types(risk)

ID

Title

Status

Links

RISK_0001

rumqttc API stability before 1.0

open

RISK_0002

iceoryx2 0.8 pre-1.0 churn

open

RISK_0003

Const-generic monomorphisation cost

open

RISK_0004

Tokio bridge latency

open

RISK_0005

Wildcard demux pathological topic patterns

open

RISK_0010

OD table size blow-up on coupling modules

open

RISK_0011

Beckhoff vendor extensions churn the IR

open

RISK_0012

ethercrab API churn breaking the backend

open

RISK_0013

ESI XML schema drift across vendors

open

RISK_0014

Generated code becomes load-bearing without migration path

open

RISK_0020

EDS files in the wild are inconsistent

open

RISK_0021

serde-ini ecosystem thinness

open

RISK_0022

CiA 301 OD blow-up on profile-rich devices

open

RISK_0023

COB-ID base assumptions in generated code

open

RISK_0024

Unbounded-rejection path unexercised until a second frontend

open

RISK_0025

bool/float CAN fields are rejected, not yet supported

open

Glossary

Used filter: types(term)

ID

Title

Status

GLOSS_0001

Connector

open

GLOSS_0002

Plugin

open

GLOSS_0003

Gateway

open

GLOSS_0004

ConnectorEnvelope

open

GLOSS_0005

Codec

open

GLOSS_0006

Routing

open

GLOSS_0007

Bridge

open

GLOSS_0008

Health

open

GLOSS_0009

Reconnect policy

open

GLOSS_0010

Channel

open

GLOSS_0011

ASIL

open

GLOSS_0020

ESI

open

GLOSS_0021

SII

open

GLOSS_0022

PDO

open

GLOSS_0023

CoE

open

GLOSS_0024

OD (Object Dictionary)

open

GLOSS_0025

InitCmd

open

Legacy detailed-design specifications

No needs passed the filters