v0.1.0-alpha | In Active Development
Built with Rust | MIT / Apache 2.0

HUDS

High-Ultrafast Diagnostic Stack

Industry-compatible automotive diagnostic framework for ECU communication. Where milliseconds matter and compliance is guaranteed.

<150
µs P95 latency
0%
Frame loss @ 80% load
19
Modular crates
100%
Memory safe
huds-cli ~ firmware flash
$ cargo install huds-cli
Installed huds-cli v0.1.0
$ huds flash --target vcan0 --file firmware.bin
[INFO] Connecting to ECU on vcan0...
[OK] Session: Programming (0x02)
[XFER] Block 1/256 ████████████████████ 100%
✓ Firmware flashed successfully (5.2MB in 3m 42s)
Throughput: 23.4 KB/s | P95 latency: 142µs | 0 retries

// FEATURES

Industrial-Grade Diagnostics

Everything you need for ECU communication, firmware updates, and real-time diagnostics.

v0.1.0-alpha — Core features functional, full coverage in progress
⚡

Ultra-Low Latency

P95 response time under 150µs. Zero-copy architecture with SPSC lock-free ring buffers.

< 150µs P95 Zero-copy Lock-free
🔒

Memory Safe

Built in Rust with strict ownership model. No buffer overflows, no data races, no crashes.

100% Safe Rust No unsafe* Ownership model
📡

ISO-TP Protocol

Full ISO 15765-2 implementation. Multi-frame segmentation and reassembly for large payloads.

ISO 15765-2 Multi-frame Flow control
🔧

UDS Services

Complete Unified Diagnostic Services implementation: session control, security, data transfer, DTCs.

15+ services 0x10-0x3E NRC handling
📊

Telemetry Built-in

Metrics, tracing, and structured logging. Monitor performance in real-time with the Debugger UI.

Real-time Structured logs Metrics export
🎯

QoS Priority Queue

Four priority levels (CRIT/HIGH/NORM/LOW) with watermark-based backpressure management.

4 priorities Backpressure Flow control

UDS Services Implemented

uds-server/src/services.rs
✓ 0x10 DiagnosticSe...
✓ 0x11 ECUReset
✓ 0x14 ClearDiagnos...
✓ 0x19 ReadDTCInfor...
✓ 0x22 ReadDataById...
✓ 0x23 ReadMemoryBy...
✓ 0x27 SecurityAcce...
✓ 0x2E WriteDataByI...
✓ 0x28 Communicatio...
✓ 0x31 RoutineContr...
✓ 0x34 RequestDownl...
✓ 0x35 RequestUploa...
✓ 0x36 TransferData
✓ 0x37 RequestTrans...
✓ 0x3D WriteMemoryB...
✓ 0x3E TesterPresen...
16 services implemented | ISO 14229 compliant | NRC handling included

// ARCHITECTURE

19 Modular Crates

Clean separation of concerns. Each crate has a single responsibility.

SDK & Tools

uds-sdk — Unified Rust facade
uds-cli — Command-line flasher
debugger-ui — Tauri + Vue dashboard

Protocol

uds-client — Flasher-side API
uds-server — ECU-side handlers
uds-iso-tp — ISO 15765-2

Transport

uds-can — CAN transport layer
debugger-collector — Real-time backend
scenario-runner — Test automation

Core

uds-core — Config, types, errors
uds-ffi — C FFI bindings

Bindings

huds-pyo3 — Python bindings
c/ — C headers
cpp/ — C++ RAII wrappers

cargo build --release → Single optimized binary with LTO

Real Hardware Benchmarks

5.2MB firmware transfer benchmarks
Hardware Time Throughput Latency/Block
vcan0 (Virtual) ~1.4 min ~60 KB/s 108 µs
USB-CAN (Innomaker) ~25 min 3.5 KB/s 1,980 µs
USB-CAN (PEAK) ~20 min 4.5 KB/s 600-700 µs
PCI-CAN (PEAK) ~3-4 min ~28 KB/s ~250 µs
Target: Reduce 30-minute firmware updates to < 8 minutes

// DEBUGGER UI

Visual Diagnostics

Tauri + Vue-based dashboard for real-time monitoring and AI-powered analysis.

HUDS Debugger v1.0.0
HUDS Debugger - AI Diagnostics
Click thumbnails to preview
📡

Live Trace

Real-time CAN frame monitoring with auto-scroll

🤖

AI Diagnostics

ML-based anomaly detection and recommendations

📊

Bus Load

Saturation heatmap with percentage indicators

⏮️

ASC Replay

Import and replay .asc trace files

🔍

Frame Inspector

Detailed breakdown of each CAN frame

📤

JSON Export

Export traces for external analysis

Built with Tauri + Vue.js + TypeScript — Native performance, web technologies

// LANGUAGE BINDINGS

One Core, Many Languages

Native Rust core with planned bindings for your language of choice. API examples below are preliminary — subject to change.

🦀

Rust

alpha

Native SDK with full type safety

example.rs
use huds::client::UdsClient;
use huds::session::DiagnosticSession;

let client = UdsClient::new("vcan0")?;
client.set_session(DiagnosticSession::Programming)?;

// Request download and transfer firmware
client.request_download(0x40000000, firmware.len())?;
client.transfer_data(&firmware)?;
client.request_transfer_exit()?;
⚙️

C / C++

in development

FFI bindings with RAII wrappers (planned)

example.c
#include <huds/uds.h>

huds_client_t* client = huds_client_new("vcan0");
huds_set_session(client, HUDS_SESSION_PROGRAMMING);

huds_request_download(client, 0x40000000, size);
huds_transfer_data(client, firmware, size);
huds_request_transfer_exit(client);

huds_client_free(client);
🐍

Python

in development

PyO3-based bindings with maturin (planned)

example.py
from huds import UdsClient, DiagnosticSession

client = UdsClient("vcan0")
client.set_session(DiagnosticSession.PROGRAMMING)

# Flash firmware
client.request_download(0x40000000, len(firmware))
client.transfer_data(firmware)
client.request_transfer_exit()

Coming Soon

🔷 Go planned
📦 JavaScript planned
💠 .NET / C# planned

// STATUS

Open Source & In Development

HUDS is currently in alpha. Free to use, hack, and contribute.

v0.1.0-alpha

Community Edition

FREE

Open source — MIT / Apache 2.0

✓ Implemented

  • ✓ UDS core protocol
  • ✓ ISO-TP transport
  • ✓ vCAN support
  • ✓ Basic CLI
  • ✓ Debugger UI (Tauri)

⚡ In Development

  • ○ Python bindings
  • ○ C/C++ bindings
  • ○ Hardware CAN adapters
  • ○ Full service coverage
  • ○ Documentation

💡 Commercial licensing may be available in the future once the project matures.

Interested in sponsoring development or early access? Let's talk.

// CONTACT

Get in Touch

Questions about licensing, integrations, or custom development? We're here to help.

We typically respond within 24 hours on business days.

Prefer email? Reach us at contact@huds.io