# Reference

`instro` provides a unified Python interface for controlling lab instruments,
collecting measurements, and publishing data to [Nominal](https://nominal.io).

This is the API reference. For installation, quickstarts, and per-instrument
guides, see the [guides](https://dev.nominal.io/instro.md).

## Overview

The SDK is organized into several key components:

- **Library**: Base classes and infrastructure for building instrument integrations,
  including the [`Instrument`](https://dev.nominal.io/instro/ref/library/instrument.md) base class, communication interfaces,
  and data publishers.
- **Instruments**: High-level, vendor-agnostic interfaces for common instrument types:
  [DAQ](https://dev.nominal.io/instro/ref/instruments/daq.md), [DMM](https://dev.nominal.io/instro/ref/instruments/dmm.md), [PSU](https://dev.nominal.io/instro/ref/instruments/psu.md),
  [Electronic Load](https://dev.nominal.io/instro/ref/instruments/eload.md), [Flow Controller](https://dev.nominal.io/instro/ref/instruments/flowcontroller.md),
  [Scope](https://dev.nominal.io/instro/ref/instruments/scope.md), [I2C](https://dev.nominal.io/instro/ref/instruments/i2c.md), [AWG](https://dev.nominal.io/instro/ref/instruments/awg.md), and
  [SDR](https://dev.nominal.io/instro/ref/instruments/sdr.md).
- **Protocols**: Config-driven clients for direct hardware communication via standard
  wire protocols: [Modbus](https://dev.nominal.io/instro/ref/protocols/modbus.md) and
  [EtherNet/IP](https://dev.nominal.io/instro/ref/protocols/ethernetip.md).
- **Drivers**: Vendor-specific implementations that connect instrument interfaces to real hardware.
- **Publishers**: Data publishing backends for exposing measurements to other services.  
  [Nominal Core](https://dev.nominal.io/instro/ref/library/publishers.md#nominal-core-publisher),
  [Nominal Connect](https://dev.nominal.io/instro/ref/library/publishers.md#nominal-connect-publisher),
  writing to [files](https://dev.nominal.io/instro/ref/library/publishers.md#file-publishers), or custom implementations.

## Quick Links

| Section | Description |
| --- | --- |
| [Library](https://dev.nominal.io/instro/ref/library/instrument.md) | `Instrument`, `Measurement`, `Command`, and base types |
| [User guides](https://dev.nominal.io/instro.md) | Installation, quickstarts, and per-instrument guides |
| [Changelog](https://dev.nominal.io/instro/ref/changelog.md) | Release history and version changes |
