Architecture
19 crates organized in 6 layers with strict dependency direction and SIL4 safety boundary
Layered Safety Architecture
CENELEC EN 50128L5
Platformetcs-sim · etcs-harness · etcs-tool · etcs-test
SIL0L4
I/O Wiringetcs-evc (std, I/O only — cannot override safety decisions)
SIL2Safety Boundary —
no_std below — zero heap allocationL3
Applicationsetcs-evc-core · etcs-rbc · etcs-leu · etcs-dmi · etcs-jru · etcs-procedures
SIL4L2
Core Logicetcs-kernel · etcs-braking · etcs-odometry
SIL4L1
Protocolsetcs-codec · etcs-euroradio
SIL4L0
Domain Typesetcs-types · etcs-safety
SIL4Strict dependency: Layer N depends only on Layer < N
Safety Boundary
EnforcedAll SIL4 crates (Layers 0–3) are no_std with zero heap allocation. The I/O wiring layer (etcs-evc, Layer 4, std) only shuttles data between TCP/radio and the core — it cannot override safety decisions.
13no_std SIL4 crates
5std platform crates
0unsafe blocks
0unwrap/expect in prod
6 Complete Subsystems
EVCEuropean Vital ComputerCore SIL4 · I/O SIL2
RBCRadio Block Centre
LEULineside Electronic Unit
DMIDriver Machine Interface
JRUJuridical Recording Unit
EuroradioSecure Communication
Delivery Binaries
8 Binariesetcs-simSystem OrchestratorevcEuropean Vital ComputerrbcRadio Block CentreleuLineside Electronic UnitdmiTerminal DMI (ratatui)jruJuridical Recorderetcs-testSS-076 Test Runneretcs-toolTraceability Tool + etcs-simdesk: Tauri 2.0 desktop app (Vue 3 + Vuetify)