Project

General

Profile

Actions

Task #2629

closed

tracking: Rust 2018 edition

Added by Danny Browning about 6 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Target version:
Effort:
Difficulty:
Label:

Description

Rust 2018 Edition will be stabilized/finalized at some point in the next few months. This issue is meant to be a tracking issue to determine what support is available for Rust 2018 in OS's supported by Suricata, to determine when it is appropriate to move to 2018 edition.

More information on editions: https://rust-lang-nursery.github.io/edition-guide/editions/index.html
Rust 2018 RC Milestone: https://github.com/rust-lang/rust/milestone/54
Rust 2018 Release Milestone: https://github.com/rust-lang/rust/milestone/55
Rust 2018 Tracking Issue: https://internals.rust-lang.org/t/rust-2018-the-home-stretch/7810

Current target is 10/25 for Rust 2018 (Rust 1.30)

One of the most significant changes for 2018 is changes to how crates, modules, and macros are found. Although much easier to use, this will produce a bit of churn in the Suricata rust code. Commit representing the churn involved: https://github.com/dbcfd/suricata/commit/33694e63dbbfc221ffda2882727b4fe431d9375e

The borrow checker has been improved as well, so some things that were safe before but compiler errors will now work with the NLL based borrow checker. Other things that may have worked but were unsafe should now be caught.

OS/Distribution Version Rust Version Supported Notes
CentOS 6 -- No Rust can be install manually
CentOS 7 1.43.1 Yes Requires EPEL
CentOS 8 1.39.0 Yes
Debian 9 1.34.2 Yes will be EOL ~2020, in LTS state until ~2022 (https://wiki.debian.org/DebianReleases)
Debian 10 1.34.2 Yes
Fedora 30+ 1.43.1 Yes
Ubuntu 16.04 1.41.0 Yes
Ubuntu 18.04 1.41.0 Yes
FreeBSD 11.2 1.42.0 Yes pkg install rustc cargo
FreeBSD 12.0 1.42.0 Yes pkg install rustc cargo
OpenBSD 6.6 1.38 Yes
OpenBSD 6.7 1.42 Yes
MinGW ?? 1.43.0 ?? Can be installed through pacman

Note #4163 contains a more up to date version of this table.


Related issues 3 (0 open3 closed)

Related to Suricata - Feature #2507: Make Rust mandatoryClosedJason IshActions
Related to Suricata - Feature #2314: protocol parser: rdpClosedZach KellyActions
Related to Suricata - Task #4163: rust: set new minimum Rust version for 7ClosedJason IshActions
Actions

Also available in: Atom PDF