Skip to content

Releases: madprogrammer/busmust-rs

v0.2.1 — License correction and concise README

Choose a tag to compare

@madprogrammer madprogrammer released this 07 Oct 14:18

Correct the native driver's license to GPL-2.0-or-later to reflect its derivation from python-can-busmust and bmsocketcan. Include the GPL text, upstream attribution, and dated Rust adaptation notices; retain the original project's historical MIT/Apache notices. Version 0.2.0 mistakenly carried the old license metadata; use 0.2.1 or later.

Shorten the README to a quick start, API documentation link, migration table, internal loopback command, and license. Move platform setup and hardware coverage notes into the crate documentation. No driver behavior changes.

Validation: formatting, documentation with warnings denied, and package verification; GitHub CI checks Linux, macOS, Windows, and Rust 1.85. The unchanged driver previously passed 74 hardware cases between two connected Gen2 X1 adapters.

busmust 0.2.0 — Native Rust USB driver

Choose a tag to compare

@madprogrammer madprogrammer released this 07 Oct 13:21

License correction: This release incorrectly retained MIT OR Apache-2.0 metadata. The native USB driver derives from the GPL-2.0-or-later python-can-busmust and bmsocketcan implementations. Use v0.2.1, which supplies corrected package metadata, the GPL text, and attribution notices. The original 0.2.0 archive is unchanged.

BUSMUST 0.2.0 replaces the vendor C SDK bindings with a native Rust USB driver using nusb. No vendor library, libusb, global initialization, or async runtime is required.

This is a breaking release. The obsolete busmust-sys crate is removed; applications should use DeviceInfo/Device, ChannelConfig, Id, Frame, Duration timeouts, and structured errors. See the README and migration guide.

Changes:

  • Validated classic CAN, CAN FD, and remote frames; inline payloads and explicit channel ownership.
  • Hardware acceptance filters with host-side enforcement for Gen2 firmware flag limitations.
  • Legacy Gen2 bus-off recovery with configuration restoration and receive-buffer handling.
  • Error-state indication is received metadata supplied by the CAN controller.
  • Automatic cleanup, incremental USB decoding, timestamp metadata, and explicit transfer failure handling.
  • GitHub CI for Linux, macOS, Windows, Rust 1.85, formatting, Clippy, docs, and package verification; automated GitHub release archives.

Validation: 41 software tests and a 74-case hardware sweep passed with two connected Gen2 X1 adapters on firmware 2.2.4.10. The hardware sweep covers classic CAN from 10 kbit/s to 1 Mbit/s, CAN FD data rates through 8 Mbit/s, termination combinations, filters, payload lengths, echoes, and induced bus-off recovery. Other models and firmware generations have not been hardware-tested.

Minimum supported Rust version: 1.85. See the license correction above and use busmust = "0.2.1" or later.