Rust 1.30 to be Released

Check the new features of this Mozilla supported programming language
29 October 2018   699

The release of the system programming language Rust 1.30, developed by the Mozilla project. The language is focused on safe work with memory, provides automatic memory management and provides the means to achieve high parallelism in the execution of tasks, while doing without the use of garbage collection and runtime.

178 developers took part in the preparation of the new release. 

The creators of the language drew attention to the fact that the rules for working with modules in Rust are unintuitive and make it difficult to master the language. In version 1.30, they tried to make this system more understandable by making some changes to use.

External containers are now loaded first:

// old
let json = ::serde_json::from_str("...");
// new
let json = serde_json::from_str("...");

Thanks to this fix, when processing code, external containers will be used regardless of the module hierarchy.

In addition, use expresses objects with the help of the crate keyword:

mod foo {
    pub fn bar() {
        // ...
    }
}

// old
use ::foo::bar;
// or
use foo::bar;

// new
use crate::foo::bar;

In Rust 1.30, developers have implemented the option of creating two new types of procedural macros. Attribute-like macro allows the user to define their own attributes. It also has more flexibility in operation than user extraction, since it can be used in functions. As an example, the developers cite the code that will be used in the framework of the web application:

#[route(GET, "/")]
fn index() {

At the same time, the #[route] attribute is determined by the framework itself and may look like this:

#[proc_macro_attribute]
pub fn route(attr: TokenStream, item: TokenStream) -> TokenStream {

In this case, the macro code sql! in the program code! used as follows:

let sql = sql!(SELECT * FROM posts WHERE id=1);

The developers have added the ability to display macros in the field of view using the use. This measure helped streamline the code and eliminate the macro_use annotation.

The proc_macro container is now stable, which allows using the API for writing macros.

Since as the language developed, the set of keywords gradually changed, in Rust 1.30 it was decided to make available the use of such words as identifiers using the #r prefix.

// define a local variable named `for`
let r # for = true;

// define a function named `for`
fn r # for () {
    // ...
}

// call that function
r # for ()

The creators of Rust thought about users who work with RTL writing, so in the names of some functions the word “left” was replaced with “start”, and “right” with “end”.

Suricata 5.0 to be Available

Suricata is a cybersecurity solution, an intrusion detection system and intrusion prevention system with opened source code
16 October 2019   196

OISF (Open Information Security Foundation) has published the release of Suricata 5.0, a network intrusion detection and prevention system that provides inspection tools for various types of traffic. In Suricata configurations, it is permissible to use the signature database developed by the Snort project, as well as the Emerging Threats and Emerging Threats Pro rule sets. The source code for the project is distributed under the GPLv2 license.

Some of the major changes:

  • New log parsing and logging modules for RDP, SNMP and SIP protocols written in Rust are introduced;
  • In addition to support for the JA3 TLS client authentication method that appeared in the previous release, support for the JA3S method is added, which allows to determine which software is used to establish the connection based on the connection negotiation features and parameters that are set (for example, it allows you to determine the use of Tor and other typical applications);
  • An experimental ability to compare with a selection from large data sets has been added, implemented using the new dataset and datarep operations. For example, the feature is applicable for searching masks in large blacklists with millions of entries;

Get more info at official website.