kizzasi-io

Crates.iokizzasi-io
lib.rskizzasi-io
version0.1.0
created_at2026-01-19 00:24:19.680329+00
updated_at2026-01-19 00:24:19.680329+00
descriptionPhysical world connectors for Kizzasi - MQTT, Audio, and sensor streams
homepagehttps://github.com/cool-japan/kizzasi
repositoryhttps://github.com/cool-japan/kizzasi
max_upload_size
id2053369
size820,816
KitaSan (cool-japan)

documentation

https://docs.rs/kizzasi-io

README

kizzasi-io

Physical world connectors for Kizzasi - MQTT, Audio, and sensor streams.

Overview

Comprehensive I/O toolkit for real-time signal acquisition and processing. Connects Kizzasi to sensors, audio devices, network protocols, and file formats.

Features

  • MQTT: TLS, QoS, wildcard topics, reconnection logic
  • Audio: CPAL, JACK, ASIO backends with multi-channel support
  • Video: FFmpeg integration, optical flow, camera input
  • Signal Processing: FFT, filters (IIR/FIR), wavelets, MFCC extraction
  • Network: WebSocket, TCP/UDP, serial, OSC, ZeroMQ
  • File I/O: WAV, CSV, HDF5 support
  • Advanced DSP: Hilbert-Huang Transform, beamforming, source separation
  • Performance: Lock-free queues, zero-copy buffers, SIMD operations

Quick Start

use kizzasi_io::{AudioInput, StreamConfig, SignalProcessor};

// Audio input at 16kHz
let config = StreamConfig::new(16000, 1)?; // sample_rate, channels
let mut audio = AudioInput::new(config)?;

// Read audio samples
let samples = audio.read(1024)?;

// Apply filtering
let mut processor = SignalProcessor::new(16000);
let filtered = processor.butterworth_lowpass(&samples, 1000.0)?;

// MQTT streaming
use kizzasi_io::MqttClient;
let mut client = MqttClient::new("mqtt://broker.local", "sensor")?;
client.publish("readings/temperature", &data).await?;

Supported I/O

  • Audio: CPAL (cross-platform), JACK (Linux), ASIO (Windows)
  • Network: MQTT, WebSocket, TCP/UDP, Serial, OSC, ZeroMQ
  • Video: FFmpeg, V4L2, DirectShow, AVFoundation
  • Files: WAV, CSV, HDF5
  • Optional: ROS2 bridge (requires ros2 feature)

Documentation

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Commit count: 1

cargo fmt