socketcan
Linux SocketCAN library. Send and receive CAN frames via CANbus on Linux.
3.6.2
9.1M downloads/mo
#3278 most downloaded on crates.io
mbr/socketcan-rs
What this package is like to depend on
Last release 2 months ago
19 Jun 2026
Ships unpredictably
gaps range from 9 days to 5.8 years
Some releases are documented
notes for 12 of 23 stable releases
2 versions withdrawn
withdrawn after publishing
10 years old
25 releases · first in 2016
3 releases in the last 12 months
see the full history below
Release timeline
25 releases · May 2016 to Jun 2026Releases
latest 25-
3.6.219 Jun 2026Release notes
Open source →Restored documentation to docs.rs by omitting async-io features, which no longer build under nightly.
- #103 Disable async-io/async-std/smol features for docs.rs
-
3.6.110 Jun 2026Release notes
Open source →Fixed broken build in v3.6.0 for musl targets
- #101 Add libc::ioctl fix for musl targets
Release notes
Open source →- #101 Add libc::ioctl fix for musl targets Fixed broken build in v3.6.0 for musl targets
-
3.6.009 Jun 2026Release notes
Open source →Timestamps & lots of fixes!
- Added ability to get timestamp for received frames
- New
CanTimestampstype carrying socket-layer, network-stack software, and hardware receive timestamps SocketOptions::set_recv_timestamp(SO_TIMESTAMPNS) andSocketOptions::set_timestamping(SO_TIMESTAMPING) to enable delivery on the socketSocket::read_frame_with_timestamp,Socket::read_frame_with_timestamps, andSocket::read_frame_with_hw_timestampon theSockettrait (default implementations returnENOSYSto preserve semver for out-of-treeSocketimplementors)CanSocket::has_hw_timestamps/CanFdSocket::has_hw_timestampsquery interface capability viaETHTOOL_GET_TS_INFO- Re-exports for the
SOF_TIMESTAMPING_*flag constants from the crate root - All read methods deliver the frame and ancillary timestamp data in a single
recvmsg()call, eliminating the race window of the oldSIOCGSTAMPNSapproach - Async equivalents on the
tokio::CanSocket/CanFdSocketandasync_io::CanSocket/CanFdSocketwrappers
- New
async_io::CanSocketandasync_io::CanFdSocketgainedopen_if(ifindex: u32)andopen_addr(&CanAddr)constructors (parity with the tokio wrappers, which previously had all three)async_io::CanSocketandasync_io::CanFdSocketnow implementfutures::Stream(yieldingResult<CanFrame>/Result<CanAnyFrame>) andfutures::Sink(overCanFrame/CanAnyFrame), parity with the tokio wrappers. Theasync-io,async-std, andsmolfeatures now pull infutures(previously it was wired in only via thetokiofeature)async_io::CanSocketandasync_io::CanFdSocketgainedtry_read_frame()andtry_write_frame()methods, parity with the tokio wrappers (added in #84). Both returnWouldBlockwhen no frame is available / send buffer is full and go straight to the underlying non-blocking fd (bypassing the async-io reactor); mixing with the async-path methods is safe- New example
tokio_recvts— tokio mirror ofcan_recvts, prints software and hardware timestamps alongside each frame - Bumped MSRV to v1.75.0
- All frame types now derive
PartialEq,Eq, andHash— both the concrete frame structs (CanDataFrame,CanRemoteFrame,CanErrorFrame,CanFdFrame) and the wrapper enums (CanFrame,CanAnyFrame,CanRawFrame). Equality is field-wise on the underlyinglibc::can_frame/libc::canfd_frame, which means it includes every byte of the structure (id, dlc, flags, the libc__pad/__res0fields, and the full data array). Note thatset_datadoes not zero the unused trailing bytes ofcan_frame::data, so two semantically-equivalent frames built by different code paths may still compare unequal — callers should treat equality as "byte-identical wire image" rather than "same logical frame". - Enabled the
extra_traitsfeature on thelibcdependency so the trait derives can flow through (libc::can_frame/canfd_frameonlyderive(PartialEq, Eq, Hash)when that feature is on). - Bug fixes:
recvmsg()ancillary control buffer is now properly aligned and validated;MSG_TRUNC/MSG_CTRUNChandled correctlytimespec_to_durationno longer wraps on a negativetv_secin release buildsFrom<canfd_frame> for CanFdFramenormalises non-spec lengths sodlc()anddata()stay consistent and no uninitialised bytes can leakTryFrom<can_frame> for CanErrorFrameforcescan_dlc = CAN_MAX_DLENso the len/dlc/data invariant holdsCanDataFrame::set_idandCanFdFrame::set_idpreserveCAN_ERR_FLAG/CAN_RTR_FLAGbits in the ID wordCanId + u32no longer panics on overflow in debug buildsAsPtr::as_bytes_mutnow returns&mut [u8]instead of&[u8]rcanCLI no longer contains duplicateloopbacksubcommand armsexamples/can_recvts.rsnow requests the full set of timestamp flags so software and hardware timestamps actually arriveexamples/fd_send.rsnow sends an actual CAN FD framefmt::UpperHexon classic frames usesraw_id()(no flag-bit leakage), zero-pads the ID to 3 chars (SFF) / 8 chars (EFF), joins data bytes without spaces, and emits#R<dlc>for remote frames so the output matches candump's log formatfmt::UpperHexonCanFdFrameprints the FD flags as a single hex nibble between##and the data bytes (no stray space)CanRemoteFrame::data()now returns&[](spec-correct: remote frames carry only a DLC); usedlc()to read the requested lengthCanInterface::createrejects names of lengthIFNAMSIZand above (off-by-one —IFNAMSIZincludes the trailing NUL)CAN_TERMINATION_DISABLEDis nowu16(matches the rest of the termination API)From<libudev::Error>preserves the underlying description on the wrappedio::ErrorCanAddrgained hand-rolledPartialEq/Eq/Hashimpls comparing(can_family, can_ifindex)only; deriving them would compare thecan_addrunion plus padding, which is unsoundCanAddr::Debugnow renders thecan_addrunion bytes (J1939 / ISO-TP fields are no longer dropped)From<sockaddr_can> for CanAddrnowdebug_assert!scan_family == AF_CANavailable_interfaces()was silently ignoring udev errors and returning an empty list of interfaces. It now returns an error on udev failure.- Tokio
Sink::poll_closeno longer attempts a spuriousclear_ready();Sink::start_sendissues a single non-blockingwrite_frame()instead of busy-retrying viawrite_frame_insist - Typo: "socke options" → "socket options" in
set_socket_option_multdoc dump::Readercaps each line at 64 KiB so a malformed or hostile log can't OOM the reader; over-long lines produceInvalidCanFramedump::Readerrequires exactly six mantissa digits on the timestamp (real candump format), and uses checked arithmetic so an overflow errors instead of producing a wrong timestampdump::Readerpropagates remote-frame DLC parse errors viaInvalidCanFrame(previously silently coerced to 0); the DLC is now parsed as a hex nibble matching candump'sR<X>formatdump::CanDumpRecordDisplaynow emits parseable lines for error frames (<error_bits>#<8 hex bytes>) and FD frames (##<flag-nibble><bytes>), and zero-pads the ID width (3 hex for SFF, 8 hex for EFF) on all variants
- New
Errorconversions:From<neli::err::NlError<T, P>>(featurenetlink) — netlink errors flow into the crate-levelErrorviaio::Error::otherFrom<dump::ParseError>(featuredump) — dump-parse errors flow intoErrorviaio::Error::new(InvalidData, …)(passing through I/O variants)
- Docs:
Socket::read_framedocuments concurrent-reader semantics (each&selfreader sees a disjoint subset of frames)CanCtrlModes::has_modedocuments that it inspectsflags(kernel-reported state) and ignores pendingmaskbitsCanFdFrame::new_remotedocuments that CAN FD has no RTR by spec, so the method always returnsNone
- Internals:
crate::as_bytes/crate::as_bytes_muthelpers are nowunsafe fnwith a proper# Safetycontract; call sites annotated
- Issues & PR's
Release notes
Open source →- Added ability to get timestamp for received frames
- New
CanTimestampstype carrying socket-layer, network-stack software, and hardware receive timestamps SocketOptions::set_recv_timestamp(SO_TIMESTAMPNS) andSocketOptions::set_timestamping(SO_TIMESTAMPING) to enable delivery on the socketSocket::read_frame_with_timestamp,Socket::read_frame_with_timestamps, andSocket::read_frame_with_hw_timestampon theSockettrait (default implementations returnENOSYSto preserve semver for out-of-treeSocketimplementors)CanSocket::has_hw_timestamps/CanFdSocket::has_hw_timestampsquery interface capability viaETHTOOL_GET_TS_INFO- Re-exports for the
SOF_TIMESTAMPING_*flag constants from the crate root - All read methods deliver the frame and ancillary timestamp data in a single
recvmsg()call, eliminating the race window of the oldSIOCGSTAMPNSapproach - Async equivalents on the
tokio::CanSocket/CanFdSocketandasync_io::CanSocket/CanFdSocketwrappers
- New
async_io::CanSocketandasync_io::CanFdSocketgainedopen_if(ifindex: u32)andopen_addr(&CanAddr)constructors (parity with the tokio wrappers, which previously had all three)async_io::CanSocketandasync_io::CanFdSocketnow implementfutures::Stream(yieldingResult<CanFrame>/Result<CanAnyFrame>) andfutures::Sink(overCanFrame/CanAnyFrame), parity with the tokio wrappers. Theasync-io,async-std, andsmolfeatures now pull infutures(previously it was wired in only via thetokiofeature)async_io::CanSocketandasync_io::CanFdSocketgainedtry_read_frame()andtry_write_frame()methods, parity with the tokio wrappers (added in #84). Both returnWouldBlockwhen no frame is available / send buffer is full and go straight to the underlying non-blocking fd (bypassing the async-io reactor); mixing with the async-path methods is safe- New example
tokio_recvts— tokio mirror ofcan_recvts, prints software and hardware timestamps alongside each frame - Bumped MSRV to v1.75.0
- All frame types now derive
PartialEq,Eq, andHash— both the concrete frame structs (CanDataFrame,CanRemoteFrame,CanErrorFrame,CanFdFrame) and the wrapper enums (CanFrame,CanAnyFrame,CanRawFrame). Equality is field-wise on the underlyinglibc::can_frame/libc::canfd_frame, which means it includes every byte of the structure (id, dlc, flags, the libc__pad/__res0fields, and the full data array). Note thatset_datadoes not zero the unused trailing bytes ofcan_frame::data, so two semantically-equivalent frames built by different code paths may still compare unequal — callers should treat equality as "byte-identical wire image" rather than "same logical frame". - Enabled the
extra_traitsfeature on thelibcdependency so the trait derives can flow through (libc::can_frame/canfd_frameonlyderive(PartialEq, Eq, Hash)when that feature is on). - Bug fixes:
recvmsg()ancillary control buffer is now properly aligned and validated;MSG_TRUNC/MSG_CTRUNChandled correctlytimespec_to_durationno longer wraps on a negativetv_secin release buildsFrom<canfd_frame> for CanFdFramenormalises non-spec lengths sodlc()anddata()stay consistent and no uninitialised bytes can leakTryFrom<can_frame> for CanErrorFrameforcescan_dlc = CAN_MAX_DLENso the len/dlc/data invariant holdsCanDataFrame::set_idandCanFdFrame::set_idpreserveCAN_ERR_FLAG/CAN_RTR_FLAGbits in the ID wordCanId + u32no longer panics on overflow in debug buildsAsPtr::as_bytes_mutnow returns&mut [u8]instead of&[u8]rcanCLI no longer contains duplicateloopbacksubcommand armsexamples/can_recvts.rsnow requests the full set of timestamp flags so software and hardware timestamps actually arriveexamples/fd_send.rsnow sends an actual CAN FD framefmt::UpperHexon classic frames usesraw_id()(no flag-bit leakage), zero-pads the ID to 3 chars (SFF) / 8 chars (EFF), joins data bytes without spaces, and emits#R<dlc>for remote frames so the output matches candump's log formatfmt::UpperHexonCanFdFrameprints the FD flags as a single hex nibble between##and the data bytes (no stray space)CanRemoteFrame::data()now returns&[](spec-correct: remote frames carry only a DLC); usedlc()to read the requested lengthCanInterface::createrejects names of lengthIFNAMSIZand above (off-by-one —IFNAMSIZincludes the trailing NUL)CAN_TERMINATION_DISABLEDis nowu16(matches the rest of the termination API)From<libudev::Error>preserves the underlying description on the wrappedio::ErrorCanAddrgained hand-rolledPartialEq/Eq/Hashimpls comparing(can_family, can_ifindex)only; deriving them would compare thecan_addrunion plus padding, which is unsoundCanAddr::Debugnow renders thecan_addrunion bytes (J1939 / ISO-TP fields are no longer dropped)From<sockaddr_can> for CanAddrnowdebug_assert!scan_family == AF_CANavailable_interfaces()was silently ignoring udev errors and returning an empty list of interfaces. It now returns an error on udev failure.- Tokio
Sink::poll_closeno longer attempts a spuriousclear_ready();Sink::start_sendissues a single non-blockingwrite_frame()instead of busy-retrying viawrite_frame_insist - Typo: "socke options" → "socket options" in
set_socket_option_multdoc dump::Readercaps each line at 64 KiB so a malformed or hostile log can't OOM the reader; over-long lines produceInvalidCanFramedump::Readerrequires exactly six mantissa digits on the timestamp (real candump format), and uses checked arithmetic so an overflow errors instead of producing a wrong timestampdump::Readerpropagates remote-frame DLC parse errors viaInvalidCanFrame(previously silently coerced to 0); the DLC is now parsed as a hex nibble matching candump'sR<X>formatdump::CanDumpRecordDisplaynow emits parseable lines for error frames (<error_bits>#<8 hex bytes>) and FD frames (##<flag-nibble><bytes>), and zero-pads the ID width (3 hex for SFF, 8 hex for EFF) on all variants
- New
Errorconversions:From<neli::err::NlError<T, P>>(featurenetlink) — netlink errors flow into the crate-levelErrorviaio::Error::otherFrom<dump::ParseError>(featuredump) — dump-parse errors flow intoErrorviaio::Error::new(InvalidData, …)(passing through I/O variants)
- Docs:
Socket::read_framedocuments concurrent-reader semantics (each&selfreader sees a disjoint subset of frames)CanCtrlModes::has_modedocuments that it inspectsflags(kernel-reported state) and ignores pendingmaskbitsCanFdFrame::new_remotedocuments that CAN FD has no RTR by spec, so the method always returnsNone
- Internals:
crate::as_bytes/crate::as_bytes_muthelpers are nowunsafe fnwith a proper# Safetycontract; call sites annotated
- Issues & PR's
- Added ability to get timestamp for received frames
-
3.5.029 Dec 2024Release notes
Open source →A major update to the
dumpmodule, with some usability improvements to frames and sockets.CanAnyFrameimplementsFromtrait forCanDataFrame,CanRemoteFrame, andCanErrorFrame.CanFdSocketimplementaTryFromtrait forCanSocket- Added FdFlags::FDF bit mask for CANFD_FDF
- The FDF flag is forced on when creating a CanFdFrame.
- Updates to
dumpmodule:- Re-implemented with text parsing
ParseErrornow implements stdErrortrait viathiserror::Error- Parses FdFlags field properly
- CANFD_FDF bit flag recognized on input
- Fixed reading remote frames
- Now reads remote length
CanDumpRecordchanges:- Removed lifetime and made
devicefield an ownedString
- Removed lifetime and made
- Implemented
CloneandDisplaytraits.Displaytrait is compatible with the candump log record format
dump::Readeris now an Iterator itself, returning fullCanDumpRecorditems- New unit tests
- #59 Embedded Hal for CanFdSocket
Release notes
Open source →CanAnyFrameimplementsFromtrait forCanDataFrame,CanRemoteFrame, andCanErrorFrame.CanFdSocketimplementaTryFromtrait forCanSocket- Added FdFlags::FDF bit mask for CANFD_FDF
- The FDF flag is forced on when creating a CanFdFrame.
- Updates to
dumpmodule:- Re-implemented with text parsing
ParseErrornow implements stdErrortrait viathiserror::Error- Parses FdFlags field properly
- CANFD_FDF bit flag recognized on input
- Fixed reading remote frames
- Now reads remote length
CanDumpRecordchanges:- Removed lifetime and made
devicefield an ownedString
- Removed lifetime and made
- Implemented
CloneandDisplaytraits.Displaytrait is compatible with the candump log record format
dump::Readeris now an Iterator itself, returning fullCanDumpRecorditems- New unit tests
- #59 Embedded Hal for CanFdSocket
-
3.4.026 Dec 2024Release notes
Open source →This is a service release to publish a number of pull requests that have accumulated in the repository, including a number of bug fixes and improvements on existing implementations.
- Re-implemented CAN raw sockets using socket2
- Added a 'CanId' type with more flexibility than embedded_can::Id
- Moved from UD utility functions and types from frame module to id
- Added a CAN FD example, echo_fd
- Split out
CanAddrand related code into a newaddrmodule. - New
CanRawFrameencapsulatea either type of libc, raw, CAN frame (Classic or FD) - Raw frame reads for CanSocket and CanFdSocket.
- Implemented
ReadandWritetraits forCanSocket - InterfaceCanParams now has all items as Option<>. Can be used to get or set multiple options.
- #58 Add new API to enumerate available SocketCAN interfaces
- #60 Make
CanStatepublic - #61
CanFdSocketread_frame crash fix - #64 Make termination u16 and add
set_termination - #65 Dump parsing also optionally trims off CR at the line end
- #66
CanInterface: addset_can_params()method to set multiple parameters - #67 Improved tokio async implementation
- #68 remove unnecessary qualifications
- #73 Update some dependencies
itertoolsto v0.13,nixto v0.29,bitflagsto v2.6,mioto v1
- #74 CanFDFrames with ExtendedID are not correctly parsed by socketcan::dump::Reader
- #75 Fix DLC and add padding for CANFD frames
- #76 Add CanCtrlModes::has_mode(mode: CanCtrlMode)
- #80 Friendly non-Linux compilation error
- Remove unused byte_conv dependency
Release notes
Open source →- Re-implemented CAN raw sockets using socket2
- Added a 'CanId' type with more flexibility than embedded_can::Id
- Moved from UD utility functions and types from frame module to id
- Added a CAN FD example, echo_fd
- Split out
CanAddrand related code into a newaddrmodule. - New
CanRawFrameencapsulates either type of libc, raw, CAN frame (Classic or FD) - Raw frame reads for CanSocket and CanFdSocket.
- Implemented
ReadandWritetraits forCanSocket - InterfaceCanParams now has all items as Option<>. Can be used to get or set multiple options.
- #58 Add new API to enumerate available SocketCAN interfaces
- #60 Make
CanStatepublic - #61
CanFdSocketread_frame crash fix - #64 Make termination u16 and add
set_termination - #65 Dump parsing also optionally trims off CR at the line end
- #66 1CanInterface1: add 1set_can_params1 method to set multiple parameters
- #67 Improved tokio async implementation
- #68 remove unnecessary qualifications
- #73 Update some dependencies
itertoolsto v0.13,nixto v0.29,bitflagsto v2.6,mioto v1
- #74 CanFDFrames with ExtendedID are not correctly parsed by socketcan::dump::Reader
- #75 Fix DLC and add padding for CANFD frames
- #76 Add CanCtrlModes::has_mode(mode: CanCtrlMode)
- #80 Friendly non-Linux compilation error
- Remove unused byte_conv dependency
-
3.3.109 Nov 2024 -
3.3.027 Oct 2023Release notes
Open source →CanFD support for Tokio
- #53 Added CanFD support for tokio
- Serialized tokio unit tests and put them behind the "vcan_tests" feature
Release notes
Open source →- #53 Added CanFD support for tokio
- Serialized tokio unit tests and put them behind the "vcan_tests" feature
-
3.2.017 Oct 2023Release notes
Open source →Expanded Netlink functionality to configure and query the CAN interface.
- #32 Further expanded netlink functionality:
- Added setters for most additional interface CAN parameters
- Ability to query back interface CAN parameters
- Expanded
InterfaceDetailsto include CAN-specific parameters - Better integration of low-level types with
neli - Significant cleanup of the
nlmodule - Split the
nlmodule into separate sources for higher and lower-level code
Release notes
Open source →- #32 Further expanded netlink functionality:
- Added setters for most additional interface CAN parameters
- Ability to query back interface CAN parameters
- Expanded
InterfaceDetailsto include CAN-specific parameters - Better integration of low-level types with
neli - Significant cleanup of the
nlmodule - Split the
nlmodule into separate sources for higher and lower-level code
- #32 Further expanded netlink functionality:
-
3.1.012 Oct 2023Release notes
Open source →Additional netlink implementation
- Added a number of netlink commands to modify the CAN interface parameters. including: setting the bitrate and (for FD) setting the data bitrate, setting control modes, manually restarting the interface, and setting the automatic restart delay time.
- PR #50 Add set_bitrate method
- PR #45 Dump handles extended IDs
- PR #44 Fix clippy warnings
- PR #43 Implement AsPtr for CanAnyFrame
Release notes
Open source →- #32 Added a number of netlink commands to modify the CAN interface parameters. including: setting the bitrate and (for FD) setting the data bitrate, setting control modes, manually restarting the interface, and setting the automatic restart delay time.
- PR #50 Add set_bitrate method
- PR #45 Dump handles extended IDs
- PR #44 Fix clippy warnings
- PR #43 Implement AsPtr for CanAnyFrame
- Added a number of netlink commands to modify the CAN interface parameters. including: setting the bitrate and (for FD) setting the data bitrate, setting control modes, manually restarting the interface, and setting the automatic restart delay time.
-
3.0.019 Sep 2023Release notes
Open source →Support for Rust async/await
- All of tokio-socketcan has been merged into this crate and will be available with an
async-tokiobuild feature. - #41 Added initial support for
async-iofor use withasync-stdandsmol - Split
SocketOptionstrait out ofSockettrait for use with async (breaking) - Added cargo build features for
tokioorasync-io. - Also created specific build features for
async-stdandsmolwhich just bring in theasync-iomodule and alias the module name toasync-stdorsmol, respectively, and build examples for each.
Release notes
Open source →- Support for Rust async/await
- All of tokio-socketcan has been merged into this crate and will be available with an
async-tokiobuild feature. - #41 Added initial support for
async-iofor use withasync-stdandsmol - Split
SocketOptionstrait out ofSockettrait for use with async (breaking) - Added cargo build features for
tokioorasync-io. - Also created specific build features for
async-stdandsmolwhich just bring in theasync-iomodule and alias the module name toasync-stdorsmol, respectively, and build examples for each.
- All of tokio-socketcan has been merged into this crate and will be available with an
- All of tokio-socketcan has been merged into this crate and will be available with an
-
2.1.019 Sep 2023Release notes
Open source →- Made
CanAddrpublic and added functions to help interact with low-level sockaddr types. Sockets can now be opened with an address. - Can create an
Errordirectly from aCanErrorFrameorstd::io::ErrorKind. - #46 Applications can create error frames:
CanErrorFrame::new()now works.CanErrorFrame::new_error()is similar but more intuitive using a raw ID word.From<CanError> for CanErrorFrameto create an error frame from aCanError.
- Added
Frame::from_raw_id()andFrame::remote_from_raw_id() - Bumped MSRV to 1.65.0
- Made
-
2.0.006 Apr 2023Release notes
Open source →Extensive rework of the crate to cleanup, refactor, and modernize the library and add some new features like CAN FD support.
- Moved to Rust Edition 2021 w/ MSRV 1.64
- Refactored frames into different types: Data, Remote, Error (and now FD), that can be managed through enumeraed wrapper types
CanFrameand/orCanFdFrame - Pushed some implementation upstream to the libc and nix crates, and/or adapted upstream types.
- CAN 2.0 frames based on
libc::can_frame - CAN FD frames based on
libc::canfd_frame
- CAN 2.0 frames based on
- #33 Netlink extensions
- Creating and deleting interfaces
- Setting MTU (to/from FD)
- #21 New CI using GitHub Actions
- #20 Composite PR with some modernization
- Pulls in #13, and updates to the latest
neliv0.6 - Updates
nixdependency to latest v0.23 - Moves to Rust 2018 w/ MSRV 1.54
- Errors conform to std::error::Error
- Pulls in #13, and updates to the latest
- #16 Add CAN FD support
- #24 Embedded HAL Traits
- Plus some source refactoring into more coherent modules
-
1.7.029 Jun 2017Nothing published for this version
-
1.6.010 Jan 2017Nothing published for this version
-
1.5.108 Dec 2016Nothing published for this version
-
1.5.008 Dec 2016Nothing published for this version
-
1.4.014 Sep 2016Nothing published for this version
-
1.3.017 Aug 2016Nothing published for this version
-
1.2.114 Jul 2016Nothing published for this version
-
1.2.014 Jul 2016Nothing published for this version
-
1.1.411 Aug 2016Nothing published for this version
-
1.1.314 Jul 2016 withdrawnNothing published for this version
-
1.1.219 May 2016 withdrawnNothing published for this version
-
1.1.108 May 2016Nothing published for this version
-
1.1.008 May 2016Nothing published for this version