Skip to content
analogdevicesincPublic

About

A cross platform library for interfacing with local and remote Linux IIO devices

Topics

Resources

Code of conduct

Contributing

Stars

645 stars

Watchers

55 watching

Forks

Latest commit

 

History

3,753 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

libiio

Library for interfacing with Linux IIO devices

libiio is used to interface to the Linux Industrial Input/Output (IIO) Subsystem. The Linux IIO subsystem is intended to provide support for devices that in some sense are analog to digital or digital to analog converters (ADCs, DACs). This includes, but is not limited to ADCs, Accelerometers, Gyros, IMUs, Capacitance to Digital Converters (CDCs), Pressure Sensors, Color, Light and Proximity Sensors, Temperature Sensors, Magnetometers, DACs, DDS (Direct Digital Synthesis), PLLs (Phase Locked Loops), Variable/Programmable Gain Amplifiers (VGA, PGA), and RF transceivers. You can use libiio natively on an embedded Linux target (local mode), or use libiio to communicate remotely to that same target from a host Linux, Windows or MAC over USB or Ethernet or Serial.

Although libiio was primarily developed by Analog Devices Inc., it is an active open source library, which many people have contributed to. The library is released under the GNU Lesser General Public License (LGPL), version 2.1 or (at your option) any later version, this open-source license allows anyone to use the library, on any vendors processor/FPGA/SoC, which may be controlling any vendors peripheral device (ADC, DAC, etc) either locally or remotely. This includes closed or open-source, commercial or non-commercial applications (subject to the LGPL license freedoms, obligations and restrictions). The examples and test applications (sometimes referred to as the iio-utils) are released separately under the GNU General Public License (GPL) version 2.0 (at your option) any later version.

Library License : Library License Utils/Examples License : Application License Certain Files License : License Latest Release : GitHub release Downloads : Github All Releases

Build : Build and Deploy Scans : Coverity Scan Build Status Release docs: Documentation Issues : open bugs closed bugs

Support:
If you have a question about libiio and an Analog Devices IIO kernel driver please ask on : EngineerZone. If you have a question about a non-ADI devices, please ask it on github.

As with many open source packages, we use GitHub to do develop and maintain the source, and GitHub Actions for continuous integration.

  • If you want to just use libiio, we suggest using the latest release.
  • If you think you have found a bug in the release, or need a feature which isn't in the release, try the latest untested binaries from the main branch and check out the documentation based on the main branch. We provide builds for a few operating systems. If you need something else, we can most likely add that -- just ask.

Important note (2026-09-22)

Since September 22nd 2026, libiio v1.0.0 has been released. It features a brand new API, which is incompatible with libiio v0.26 and older. Have a look at the migration guide for a description of the API changes.

The old v0.x API can still be found in the libiio-v0 branch. Libiio v0.x is now considered legacy, and as such, only important bug fixes will be accepted into this branch.

Old programs compiled against libiio v0.x will still be able to run with libiio v1.0 and newer, as it provides a compatibility layer.

Latest Release

Operating System Version Installer Package
Windows Windows-64 Windows-64
MacOS macOS 15 (x64) macOS 15 (x64)
macOS 14 (x64) macOS 14 (x64)
macOS Ventura (v13 arm64) macOS Ventura (v13 arm64)
Linux Ubuntu (v 26.04)1 Ubuntu (v 26.04)
Ubuntu (v 24.04)1 Ubuntu (v 24.04)
Ubuntu Jammy Jellyfish (v 22.04)1 Ubuntu Jammy Jellyfish (v 22.04)
Ubuntu Focal Fossa (v 20.04)1 Ubuntu Focal Fossa (v 20.04)<sup>1</sup>
Fedora 34 Fedora 34
Fedora 28 Fedora 28
Debian Bookworm (12) Debian Bookworm (12)
Debian Bullseye (11) Debian Bullseye (11)
ARM Ubuntu-ppc64le Ubuntu-ppc64le
Ubuntu-x390x Ubuntu-x390x
Ubuntu-arm64v8 Ubuntu-arm64v8
Ubuntu-arm32v7 Ubuntu-arm32v7
Debian12-arm Debian12-arm

See all releases here.

Language Bindings

In addition to the core C library, libiio provides bindings for a few other languages:

Feedback

If you use it, and like it - please let us know. If you use it, and hate it - please let us know that too. The goal of the project is to try to make Linux IIO devices easier to use on a variety of platforms. If we aren't doing that - we will try to make it better.

Feedback is appreciated (in order of preference):

Weblinks:

  1. The Ubuntu packages are known to work on their Debian counterpart releases.

About

A cross platform library for interfacing with local and remote Linux IIO devices

Topics

Resources

Code of conduct

Contributing

Stars

645 stars

Watchers

55 watching

Forks

Releases

Packages

Used by

Contributors

Languages