Skip to content

Releases: fpagliughi/rust-industrial-io

Version 0.6.0

10 Dec 16:52
Compare
Choose a tag to compare

This release mostly updated the sources for the latest Rust compiler and dependencies, while also allowing users to select the version of the libiio bindings to use.

  • Upgraded to Rust Edition 2021, MSRV 1.73.0
  • New bindings in the -sys crate for libiio v0.24 & v0.25
    • Cargo build features for selecting bindings to older libiio versions (v0.24, v0.23, etc)
    • Conditional features based on the version of libiio.
  • Updated examples and utils to use clap v3.2, with forward-looking implementation.
  • Added buildtst.sh script for local CI testing. This runs the cargo check, test, clippy, and doc for the latest stable compiler and the MSRV.
  • Fixed new clippy warnings.
  • Updated nix dependency to v0.29
  • Renamed iio_info_rs to riio_info to be compatible with naming of other utilities and examples.
  • Converted to explicit re-exports to avoid ambiguous warnings.
  • Added a mutable iterator for channel data in a buffer (to fill the buffer)
  • Added lifetime to buffer iterator so as not to outlive the buffer.
  • [Breaking]: Buffer iterator now returns a reference to the item in the buffer, to be consistent with mutable iterator and slice iterators.
  • PR #28- Move set_num_kernel_buffers() to Device
  • PR #22- Disable chrono default features to mitigate segfault potential in time crate
  • Added initial CI support to test building and format. (Still can't run unit tests in CI due to iio kernel module requirements).

Version 0.5.2

03 Feb 21:49
Compare
Choose a tag to compare

Minor release to add the new "utilities" build feature and update some dependencies.

  • PR #26 - Added 'utilities' feature to be able to turn off build of binary applications (i.e. only build the library).
  • #21 - Update nix dependency to avoid linking vulnerable version
  • Updated dependencies for clap and ctrlc crates.

Version 0.5.1 - Minor point release. macOS on Intel.

05 Feb 19:26
Compare
Choose a tag to compare
  • iio_info_rs utility now supports network and URI contexts.
  • PR #19 macOS build makes a distinction for Intel and non-Intel builds when searching for Homebrew Frameworks (libiio library).
  • PR #20 Fix some clippy suggestions. Particularly cleaner casting of raw pointers, etc.

Version 0.5.0 - Better multithreading

31 Jan 15:06
Compare
Choose a tag to compare
  • Started loosening thread safety restrictions:
    • The Context is now Send and Sync. Internally it has canverted to using an Arc instead of an Rc to track it's internal data.
    • The Device is now Send.
    • For high performance with multiple device, though, it's still recommended to used fully-cloned contexts for each device
    • For now, Channel and Buffer objects are still !Send and !Sync. So they should live in the same thread as their channel.
  • New functions to manipulate Context and InnerContext objects:
    • Context::try_release_inner() attempts to get the inner context out of the context wrapper.
    • Context::try_deep_clone() to make a new context around a deep copy of the inner context (and thus a copy of the C lib context).
    • From<InnerContext> for Context

Version 0.4.1

28 Jan 23:16
Compare
Choose a tag to compare

Fixed v0.4.0 release which was done from the wrong branch.

Version 0.4.0 - MacOS support and updated attributes

28 Jan 23:09
Compare
Choose a tag to compare
  • #12 Context construction now takes a Backend enumeration type.
  • The InnerContext is now public and can be cloned and sent to another thread to create a cloned context in the other thread.
  • #15 Generic attr_read() and attr_write() functions for devices, channels, and buffers.
  • #17 macOS support (for network clients)
  • Buffer attribute read/write functions and iterators moved into the Buffer struct.
  • Buffer struct now contains a clone of the Device from which it was created.
  • Device and Channel now support Clone trait.
  • Updates to the examples for more/different hardware.
  • New Version struct which is returned by the library and Context version query functions.

Version 0.3 - libiio v0.21 and new Error handling

26 May 19:17
Compare
Choose a tag to compare
  • Support for libiio v0.21
  • Updated error handling:
    • Support for std::error
    • Implementation changed to use thiserror (from error_chain)
    • Specific types defined for common errors intead of just string descriptions (WrongDataType, BadReturnSize, InvalidIndex, etc)
  • New device capabilities:
    • remove_trigger()
    • is_buffer_capable()
  • New utility app: riio_stop_all

v0.2 - Coverage for most of the underlying library

29 Dec 14:49
Compare
Choose a tag to compare

This adds support for much of the functionality of the underlying libiio library, including:

  • Support for libiio v0.18
  • Further implementation of libiio functions for contexts, devices, channels, etc.
  • Functions to read and write buffers, with and without conversions, and to convert individual samples to and from hardware format.
  • [Breaking] Removed previous ChannelType for Input/Output as it conflicted with the library's channel types of Voltage, Current, Power, etc, and implemented the library type.
  • Contexts have a ref-counted "inner" representation using Rc<>, and can be "cloned" quickly by incrementing the count. (Thanks, @skrap!)
  • Devices carry a cloned reference to the context that created them, thus keeping the context alive until the last device using it gets dropped.
  • Some clippy-recommended lints.
  • Example app to collect and process data a buffer at a time, with conversions.

v0.1 - Initial release

22 Nov 01:48
Compare
Choose a tag to compare
Pre-release

An initial release with modest coverage of the API.