Releases: fpagliughi/rust-industrial-io
Releases · fpagliughi/rust-industrial-io
Version 0.6.0
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
toriio_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
Minor release to add the new "utilities" build feature and update some dependencies.
Version 0.5.1 - Minor point release. macOS on Intel.
Version 0.5.0 - Better multithreading
- Started loosening thread safety restrictions:
- The
Context
is nowSend
andSync
. Internally it has canverted to using anArc
instead of anRc
to track it's internal data. - The
Device
is nowSend
. - For high performance with multiple device, though, it's still recommended to used fully-cloned contexts for each device
- For now,
Channel
andBuffer
objects are still!Send
and!Sync
. So they should live in the same thread as their channel.
- The
- New functions to manipulate
Context
andInnerContext
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
Fixed v0.4.0 release which was done from the wrong branch.
Version 0.4.0 - MacOS support and updated attributes
- #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()
andattr_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 theDevice
from which it was created.Device
andChannel
now supportClone
trait.- Updates to the examples for more/different hardware.
- New
Version
struct which is returned by the library andContext
version query functions.
Version 0.3 - libiio v0.21 and new Error handling
- 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)
- Support for
- New device capabilities:
- remove_trigger()
- is_buffer_capable()
- New utility app: riio_stop_all
v0.2 - Coverage for most of the underlying library
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 ofVoltage
,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
An initial release with modest coverage of the API.