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