tekhsi_rs-0.1.0 has been yanked.
tekhsi_rs
High-performance client for Tektronix HSI enabled oscilloscopes, with native Rust, Python, and Node.js bindings.
Overview
tekhsi_rs connects to Tektronix HSI-compatible oscilloscopes, validates waveform headers, and decodes analog/digital/IQ data into typed waveforms with strict validation. It prioritizes correctness, performance, and reliability over the Python reference implementation.
Key Features
- High-throughput — Parallel download and decode loops and minimal allocations
- Strict validation — Rejects invalid/unsupported waveform data with explicit errors
- Streaming — Async iterator-based acquisition with broadcast channels
- Multi-language — Native Rust, Python, and Node.js bindings
- FFT support — Calibrated FFT helpers for frequency analysis
Language Bindings
| Language | Package | Status |
|---|---|---|
| Rust | tekhsi_rs |
Core implementation |
| Python | pytekhsi |
Async + sync APIs |
| Node.js | tekhsi_js |
TypedArray + async iter |
Quick Start
Rust
use ;
async
Python
= await
= await
=
await
Node.js
import { TekHsiClient } from 'tekhsi_js'
const client = await TekHsiClient.connect('scope:5000')
const symbols = await client.listAvailableSymbols()
const receiver = await client.subscribe(symbols)
for await (const acquisition of receiver) {
for (const channel of acquisition.iter()) {
console.log(channel)
}
}
await client.disconnect()
Installation
Rust
# or for FFT support:
Python
# or build from source:
&&
Node.js
# or build from source:
&&
Benchmark
# Rust benchmark
# Python benchmark
&&
# Node.js benchmark
&&
Demo Applications
scopeapp (Rust) — egui/eframe-based oscilloscope viewer
pyscopeapp (Python) — PyQt6/pyqtgraph-based viewer
&&
Testing
Integration tests depend on the Python test server in tests/server/.
# Build and run test server
&&
# Run tests (requires --features client-id-header for test server)
# Clean test server artifacts
&&
License
GPL-3.0 — See LICENSE for details.
Related
- What is HSI - Introduction to Tektronix HSI
- Tektronix TekHSI — Tektornix HSI python implementation