PackageTrack
Sign in Get early access

serial2

Cross platform serial ports

0.2.38 8.9M downloads/mo #3329 most downloaded on crates.io de-vri-es/serial2-rs

What this package is like to depend on

Last release 23 days ago

31 Jul 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 49 of 49 stable releases

3 versions withdrawn

withdrawn after publishing

5 years old

55 releases · first in 2021

7 releases in the last 12 months

see the full history below

Release timeline

55 releases · Nov 2021 to Jul 2026
2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 55
  1. 0.2.38 31 Jul 2026
    Release notes

    Changes:

    • [fix][minor] Allow deserializing char size and stop bits from signed integers (as long as they are positive).
    Open source →
    Release notes
    • [fix][minor] Allow deserializing char size and stop bits from signed integers (as long as they are positive).
    Open source →
  2. 0.2.37 11 May 2026
    Release notes

    Changes:

    • [change][minor] Switch from winapi to windows_sys for Windows platforms.
    Open source →
    Release notes
    • [change][minor] Switch from winapi to windows-sys for Windows platforms.
    Open source →
  3. 0.2.36 13 Apr 2026
    Release notes

    Changes:

    • [fix][minor] Fix build on Haiku.
    • [fix][minor] Fix SerialPort::pair() on OpenBSD, Haiku and DragonFlyBSD.
    Open source →
    Release notes
    • [fix][minor] Fix build on Haiku.
    • [fix][minor] Fix SerialPort::pair() on OpenBSD, Haiku and DragonFlyBSD.
    Open source →
  4. 0.2.35 04 Apr 2026
    Release notes

    Changes:

    • [add][minor] Include tty0tty devices in available_ports() on Linux.
    Open source →
    Release notes
    • [add][minor] Include tty0tty devices in available_ports() on Linux.
    Open source →
  5. 0.2.34 16 Feb 2026
    Release notes

    Changes:

    • [fix][minor] Make SerialPort::pair() open the first PTY in non-blocking mode.
    Open source →
    Release notes
    • [fix][minor] Make SerialPort::pair() open the first PTY in non-blocking mode.
    Open source →
  6. 0.2.33 22 Sep 2025
    Release notes

    Changes:

    • [fix][patch] Improve example in main library documentation.
    Open source →
    Release notes
    • [fix][patch] Improve example in main library documentation.
    Open source →
  7. 0.2.32 12 Sep 2025
    Release notes

    Changes:

    • [fix][minor] Fix get_baud_rate() on Linux with glibc 2.42.
    Open source →
    Release notes
    • [fix][minor] Fix get_baud_rate() on Linux with glibc 2.42.
    Open source →
  8. 0.2.31 07 Aug 2025
    Release notes

    Changes:

    • [fix][patch] Fix build for AIX targets.
    Open source →
    Release notes
    • [fix][patch] Fix build for AIX targets.
    Open source →
  9. 0.2.30 31 Jul 2025
    Release notes

    Changes:

    • [fix][minor] Fix SerialPort::discard_buffers() on Unix platforms.
    Open source →
    Release notes
    • [fix][minor] Fix SerialPort::discard_buffers() on Unix platforms.
    Open source →
  10. 0.2.29 08 Apr 2025
    Release notes

    Changes:

    • [add][minor] Add SerialPort::set_break() to hold the data line in break condition.
    Open source →
    Release notes
    • [add][minor] Add SerialPort::set_break() to hold the data line in break condition.
    Open source →
  11. 0.2.28 10 Nov 2024
    Release notes
    • [fix][minor] Fix verification of applied settings on iOS and macOS.
    Open source →
  12. 0.2.27 13 Sep 2024
    Release notes
    • [fix][minor] Allow for a 2.5% deviation in actual baud rate when applying settings on Unix.
    • [add][minor] Implement Debug for SerialPort showing the underlying file descriptor (Unix) or handle (Windows).
    Open source →
  13. 0.2.26 21 Jun 2024
    Release notes
    • [add][minor] Support more custom baud rates on iOS and macOS.
    Open source →
  14. 0.2.25 13 Jun 2024
    Release notes
    • [fix][patch] Fix documentation build failre on http://docs.rs.
    Open source →
  15. 0.2.24 23 Apr 2024
    Release notes
    • [fix][patch] Fix compilation with "doc" feature on supported platforms.
    Open source →
  16. 0.2.23 23 Apr 2024
    Release notes
    • [add][minor] Add a "doc" feature to enable all feature and platform specific items with stubs for documentation purposes.
    Open source →
  17. 0.2.22 23 Apr 2024
    Release notes
    • [add][minor] Add SerialPort::set_rs4xx_mode() and get_rs4xx_mode() behind rs4xx feature flag.
    Open source →
  18. 0.2.21 15 Apr 2024
    Release notes
    • [change][patch] Improve documentation about timeouts and composed operations like read_exact() and write_all().
    Open source →
  19. 0.2.20 04 Mar 2024
    Release notes
    • [fix][minor] Fix write timeout for Unix platforms.
    Open source →
  20. 0.2.19 04 Feb 2024
    Release notes
    • [add][minor] Add SerialPort::pair() on Unix platforms to open a pair of connected pseudo-terminals.
    Open source →
  21. 0.2.18 04 Feb 2024
    Release notes
    • [change][minor] Open serial ports on Unix with the O_NOCTTY flag.
    Open source →
  22. 0.2.17 19 Jan 2024
    Release notes
    • [fix][minor] Set the IGNBRK and IGNPAR flags in Settings::set_raw() on Unix platforms.
    Open source →
  23. 0.2.16 08 Jan 2024
    Release notes
    • [add][minor] Add SerialPort::read_exact() that takes &self.
    • [fix][minor] Fix behavior of SerialPort::write_all() when a write returns Ok(0).
    • [fix][minor] Fix behavior of SerialPort::write_all() when a write is interrupted.
    Open source →
  24. 0.2.15 27 Dec 2023
    Release notes
    • [add][minor] Add SerialPort::try_clone().
    Open source →
  25. 0.2.14 16 Dec 2023
    Release notes
    • [fix][minor] Make TryFromError public.
    Open source →
  26. 0.2.13 16 Dec 2023
    Release notes
    • [add][minor] Add CharSize::as_u8().
    • [add][minor] Add StopBits::as_u8().
    • [add][minor] Add Parity::as_str() and Parity::from_str().
    • [add][minor] Add FlowControl::as_str() and FlowControl::from_str()`.
    • [add][minor] Implement Display for CharSize, StopBits, Parity and FlowControl.
    • [add][minor] Implement TryFrom<...> for CharSize for integer types.
    • [add][minor] Implement TryFrom<...> for StopBits for integer types.
    • [add][minor] Implement TryFrom<&str> for Parity.
    • [add][minor] Implement TryFrom<&str> for FlowControl.
    Open source →
  27. 0.2.12 02 Dec 2023
    Release notes
    • [add][minor] Implement Read and Write for &SerialPort.
    Open source →
  28. 0.2.11 02 Dec 2023
    Release notes
    • [change][patch] Add example for SerialPort::open() for configuring the serial port with a closure.
    Open source →
  29. 0.2.10 21 Nov 2023
    Release notes
    • [change][patch] Tweak the documentation style for the optional serde support.
    Open source →
  30. 0.2.9 21 Nov 2023
    Release notes
    • [add][minor] Add optional support for serde with the serde feature.
    Open source →
  31. 0.2.8 03 Nov 2023
    Release notes
    • [change][minor] Set VMIN to 1 on Unix platforms to work correctly with epoll() on Linux.
    Open source →
  32. 0.2.7 16 Oct 2023
    Release notes
    • [add][minor] Add the "unix" crate feature to enable Unix specific extensions.
    • [add][minor] Add the "windows" crate feature to enable Windows specific extensions.
    • [add][minor] Add Settings::as_raw_termios() and as_raw_termios_mut() on Unix platforms.
    • [add][minor] Add Settings::as_raw_dcb() and as_raw_dcb_mut() on Windows.
    • [add][minor] Add SerialPort::get_windows_timeouts() and set_windows_timeouts() on Windows.
    Open source →
  33. 0.2.6 06 Oct 2023
    Release notes
    • [fix][oatch] Remove wrong documentation about manually using the win32 device namespace on Windows.
    Open source →
  34. 0.2.5 06 Oct 2023
    Release notes
    • [change][minor] Increase the default read/write timeouts on Unix platforms to 3 seconds.
    • [fix][minor] Explicitly set VMIN and VTIME to 0 on Unix platforms in Settings::set_raw().
    • [fix][minor] Mimic Unix behavior on Windows: read will return with available data as soon as possible.
    Open source →
  35. 0.2.4 06 Oct 2023
    Release notes
    • [change][patch] Always open serial ports with the O_NONBLOCK flag on Unix.
    Open source →
  36. 0.2.3 06 Oct 2023
    Release notes
    • [add][minor] Implement From<OwnedFd>, Into<OwnedFd> and AsFd for SerialPort on Unix platforms.
    • [add][minor] Implement From<OwnedHandle>, Into<OwnedHandle> and AsHandle for SerialPort on Windows.
    Open source →
  37. 0.2.2 04 Aug 2023
    Release notes
    • [fix][minor] Fix Settings::get_flow_control() on Unix platforms.
    Open source →
  38. 0.2.1 29 May 2023
    Release notes
    • [fix][minor] Fix Settings::get_parity() on Unix platforms.
    Open source →
  39. 0.2.0 28 May 2023
    Release notes
    • [change][major] Do not implicitly set the serial port to raw mode when using a closure as second argument to SerialPort::open().
    • [add][minor] Add Settings::set_raw() to disable OS level input/output processing.
    Open source →
  40. 0.1.10 29 May 2023
    Release notes
    • [fix][minor] Fix Settings::get_parity() on Unix platforms.
    Open source →
  41. 0.1.9 28 May 2023
    Release notes
    • [fix][minor] Disable fDsrSensitivity on Windows when configuring flow control.
    Open source →
  42. 0.1.8 28 May 2023
    Release notes
    • [change][patch] Mention the win32 device namespace in the documentation.
    • [add][minor] Implement Debug for Settings.
    • [fix][minor] Fix setting of character size, stop bits and parity on Unix platforms.
    Open source →
  43. 0.1.7 12 Oct 2022
    Release notes
    • [add][minor] Add write_all() function that takes &self.
    Open source →
  44. 0.1.6 09 Dec 2021
    Release notes
    • [change][patch] Remove fills for libc constants that are no longer needed.
    Open source →
  45. 0.1.5 20 Nov 2021
    Release notes
    • [change][patch] Dual-license under BSD-2-Clause and Apache-2.0.
    Open source →
  46. 0.1.4 19 Nov 2021
    Release notes
    • [add][minor] Detect /dev/ttyU* and /dev/cuaU* devices when listing serial ports on FreeBSD and DragonFlyBSD.
    Open source →
  47. 0.1.3 13 Nov 2021
    Release notes
    • [fix][minor] Handle non-existing HKLM\Hardware\DEVICEMAP\SERIAL registry key for port enumeration on Windows.
    Open source →
  48. 0.1.2 13 Nov 2021
    Release notes
    • [fix][patch] Fix link to documentation in Cargo.toml.
    Open source →
  49. 0.1.1 13 Nov 2021
    Release notes
    • [fix][minor] Fix leaking event objects on Windows.
    Open source →
  50. 0.1.0 12 Nov 2021 withdrawn
    Release notes
    • [add][minor] Add non-trait is_read_vectored() and is_write_vectored() functions.
    • [change][patch] Improve documentation.
    Open source →
  51. 0.1.0-alpha5 11 Nov 2021 pre-release
    Release notes
    • [add][minor] Implement port enumeration for BSD and Apple platforms.
    • [add][minor] Implement port enumeration for Illumos and Solaris.
    Open source →
  52. 0.1.0-alpha4 09 Nov 2021 pre-release
    Release notes
    • [fix][minor] Fix buffer truncation when enumerating ports on Windows.
    • [add][minor] Switch to overlapped IO on windows to allow concurrent reads and writes.
    Open source →
  53. 0.1.0-alpha3 08 Nov 2021 pre-release
    Release notes
    • [add][minor] Implement port enumeration for Windows.
    • [fix][minor] Fix comparing termios struct on Linux, when using BOTHER with a standard baud rate.
    • [change][minor] Always set the TTY to raw mode on Unix.
    • [add][minor] Add versions of read(), write() and friends that take a const &self.
    • [add][minor] Make KeepSettings public as intended.
    • [change][minor] Make more functions take &self instead of &mut self.
    Open source →
  54. 0.1.0-alpha2 07 Nov 2021 pre-release withdrawn
    Release notes
    • [add][minor] Add SerialPort::available_ports(), which for now only works on Linux.
    Open source →
  55. 0.1.0-alpha1 07 Nov 2021 pre-release withdrawn
    Release notes
    • [add][minor] First alpha release.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive