Skip to main content

Rust library

The CLI is a thin layer over the infishark crate (core/ in the infishark repo).

Add the dependency

cargo add infishark --git https://github.com/infishark/infishark

Minimal example

use infishark::{BleScanOpts, Device};

fn main() -> infishark::Result<()> {
let mut dev = Device::open(None, 12_000)?; // None auto-detects the port
for d in dev.ble_scan(&BleScanOpts::default())? {
println!("{} {} dBm", d.address, d.rssi);
}
Ok(())
}

Examples in the repo

From a clone of the repository:

cargo run --example ble_scan
cargo run --example wifi_scan
cargo run --example device_info

Examples live under core/examples/.

When to use the library

  • Embed Nano control inside your own Rust tool
  • Custom workflows (retry, multi-device, reporting) without shelling out
  • Future language bindings can wrap the same wire protocol

API docs

Generate rustdoc locally:

cd infishark
cargo doc -p infishark --no-deps --open

Product guides on this site cover workflows. Flag-level CLI detail remains infishark <command> --help.

License

GPL-3.0-only for the host SDK. Firmware remains closed-source. See the repository README.