News Rust # 1 (September 2018)
My comment to the news about Rust ??? with a review of rusty events for a month went well, so that's holding
a section of rusty news for the past month.
In this collection: Rust 1.2? records from Rustconf 201? gfx-rs, Rust201? Flatbuffers port, new versions of ripgrep and Alacritty.
Rust came out ???. The main innovations are available immediately from
cargo fix and
cargo clippy (in more detail in habroperevod ).
? discussion ).
Rust ??? and ??? will be very significant.
There is no exact list yet, but it is expected that :
- in ??? (???) will partially stabilize procedural macros;
- in ??? (???) there will be Rust 2018 + non-lexical lifetimes (NLL) .
? the program of papers ). The list of videos in the order of a very approximate subjective interest:
- Using Rust For Game Development - Kyren from Chucklefish tells about ECS ; Access extended text version of the report ;
- Integrating Rust into Tor: Successes and Challenges - as Tor slowly rusts (one third of the Tor code is now on Rust);
- Using Raft in Rust - Introduction to pingcap /raft-rs ;
- Space, The Rusty Frontier - Rusted space satellites;
- How to (not) introduce Rust at your workplace - about the unsuccessful experience of introducing Rust into the company and what conclusions can be drawn from it;
- Embedding Rust in C /C ++ - from the foundations of FFI to subtle moments and stuffed in practice cones;
- Getting Something for Nothing - how Rust can help in programming for embedded systems;
- Benchmarking and Optimization of Rust Libraries - review of tools and approaches to optimization and benchmarking;
- The Dark Secrets Lurking Inside cargo doc - a tour of the functional rustdoc, including not all known features and a bit about its device;
- Project Mentat: a store for evolving data in Rust - Why is needed and how is arranged. mozilla /mentat ( ? note ? in the beginning of September the project suddenly froze due to a change of priorities);
- C2Rust: Migrating Legacy Code to Rust - another way ( ? corrode and ? citrus-rs ) Partially automate the translation of the code base from C to Rust, how it works, what can be better /worse, how to verify that the logic has not broken down, and what attempts there is in "secure" the generated code;
- The Opposite of Spaghetti Code: Building for Understanding - how to intelligently use Rust tools to build reliable, understandable and extensible APIs;
- My Little Procedural Macro - A short introduction to the world of writing procedural macros. how they work, what is different from the declarative, example and advice;
- Writing Crates for Complete Beginners - A Tour of Turtle - turtle.rs as an example of a library for learning programming, Rust as someone's first YAP, how to hide all the complexity behind a very simple API and to issue features of the rasta very dosed;
- Rust and the Web Platform: A Rookie's Guide - The long way of the Internet to WASM and how Rust is associated with this.
Bonus: several entries arrived with Rust Cologne :
- hyperjson - about the python parsing module JSON mre /hyperjson , written on Rust with the help of PyO3 ;
- Share Secrets Safely - about simplifying the work with GPG share-secrets-safely /cli .
Continues to grow The wasm-bindgen Guide ;
buildthe command is now incremental, the command
was added. test, appeared site ( ? details );
The web-sys package was released. ( discussion ) - a package that provides raw bindings to the means of manipulating DOM, WebGL, WebAudio, timers, fetch, and so on. Over time,
web-syswill become part of stdweb ;
greenwasm - A new project for writing a compatible engine with the WebAssembly engine on Rust;
Wasabi - framework for dynamic analysis of WASM.
WebRender, gfx-rs and gfx-portability
There was a lot of driving there lately:
In this issue: we talk with the guest about how his life changed after the transition from Rockstar Games to Mozilla; discussing WebRender, WebGPU API, and Vulkan Portability; we do not bypass the theme of Diversity;
In the experimental order, Gecko was brought to WebRender via Vulkan ;
? discussion )
The Citybound was excellent report on RustFest'e .
There was much talk about the future of cgmath and nalgebra , one of the results of which is the publication of nalgebra-glm ( ? discussion ) - lightweight wrapper over the "adult" nalgebra ;
As a result of the recent LD42 of jam :
- @Icefoxen published the game "Running In To Space" and very detailed shared his experience ;
- @Ratysz published a game about survival in a global warming "It's Not Cool" :
What would you remove from Rust?
Interesting topic in /r /rust , where it is possible to learn from the comments quite decently any roughness of the language.
Rusty port of FlatBuffers
Have brought the official port of Google FlatBuffers to Rust (
? discussion ). A thick layer of tests, fuzzing, performance and everything else are present.
Do not fear 1.0!
Interesting discussion in /r /rust why the ecosystem is slowis recruited to> 1.0 packages.
- In order for the author to stabilize the package, he needs to make sure that the IPA is adequate - for this he needs to see how people use it. Many people do not use the packages < 1.0, ожидая их стабилизации — от этого стабилизация замедляется;
- For users: want more stable packages - use unstable and give feedback to the author;
- For authors: do not worry so much about release 1.0.
The version ??? ( ? discussion , Very interesting) was released - now it works even faster, it supports PRCE2 and multiline queries.
Alacritty This is a terminal emulator with GPU acceleration, which tries to be very very fast on any 4K screen.
Version 0.2 of was released. ( discussion ) With support for scrolling. From its addition for a long time refused, saying "use tmux", but in the end it was possible to give birth to a performance that was not very high in performance.
By the way, like ripgrep, Alacritty crawls into Linux distributions: brought to Arch ;
The new RFC
By RFC it is quite convenient to observe, in which direction the language moves. In the header of each PRa there is a link "Rendered", according to which RFC is available in a readable form.
RFC 2438 "Deny the overflowing_literalsLint for the 2018 edition" -
overflowing_literalsin Rust 2018 will be a tough mistake, not just a warning;
- RFC 2383 "Lint Reasons" - add the "reason" argument for documentation why we want to disable some validation and the new "expected" attribute, which will require the operation of the check;
- RFC 2437 "Rustfmt stability" - Careful attempts to outline the limits of backwards compatibility of auto-formatting code;
RFC 2535 "Or patterns, i.e Foo (Bar (x) | Baz (x))" - sugar for OR in comparisons;
- RFC 2545 "Elide array size" - the possibility not to specify the size of arrays explicitly in single-valued contexts, for example:
static BLORP_NUMBERS:[u32; _]=[0, 8, 15];
- RFC 2361 "Simpler alternative dbg! () Macro" - Another attempt to add
- RFC 2412 "The optimize attribute" - offers to enter a custom
#[optimize]attribute for adjusting optimizations at item level;
- RFC 2544 "Make the turbofish syntax redundant" - another attempt to kill the "turbobyb" (
:: <>, As in
Foo :: ());
RFC 2418 "Add futures and task system to libcore" again postponed, not destiny to it to become a part of innovations Rust2018.
There is a discussion of import semantics in Rust 2018 .
One line is
Not unknown Bryan Cantrill wrote a large-scale post Falling in love with Rust (
[habr]FB2D - 2D framework for Linux Frame Buffer (Rust) ;
Continue disputes about the future RLS ( which became zaburlili after statements of intention to release RLS ???r3r3906.);
URLO theme from Kornel (author crates.rs) about the "bus factor" in the rusty ecosystem and what to do with it ;
Rust on iOS - a how to with source code (
) - the instruction for creating a rusty application for IOS;
Beware the rust cache on Travis - Accurately with the naive caching of assemblies in travis-ci, maybe it only hinders you;
IntelliJ Rust continues to develop: # 82 , # 83 - In particular, the addition of dependencies in Cargo.toml has been improved, macro support and Rust2018 support;
benfred /py-spy - Python profiler;
Binaryum ( ? discussion
) - disassembler with logic on Rust and UI on an electron;
lewton ???r3r3906. (
discussion ) - a new version of the ogg decoder, now without unsafe;
rayn ( discussion ) - a small ray tracer;
) - A memory-safe and OpenSSL-compatible TLS library;
Tantivy ???r3r3906. (
discussion ) - library for high-performance full-text search (analog
), Improved performance;
miniserde ( ? discussion
) - mini serde , which supports only JSON. It seems amusing, but not completely clear where its application makes sense;
Geemili /mdproof ( discussion ) - light weight converter markdown-> pdf;
Spirit ( ? discussion
) - a library for simplifying the creation of rusty demons;
That's all, thanks for attention!
If I have not added some important link or event, feel free to drop it in the comments. :)
KDPV is taken from article Looking for what to learn in 2018? Learn Rust! , the rest of the pictures from the sites of the corresponding projects.
Only registered users can participate in the survey. Enter , you are welcome.
Is the correct detail for the monthly format?
Too many links, I'm tired of scrolling. It would be better to remove less interesting
As it is - just right
I do not mind if the links were even more
9 people have voted. Abstained 1 user.
It may be interesting
looking for the best social traffic services to buy online? look no further. Want to capitalize on the world’s obsession with social media? Buy social traffic that is driven to your website or blog from the most popular social media platforms including Facebook, Instagram, Twitter and more! Activities on Facebook will be fruitful when you, along with your other activities on other social networks and of course your website, also benefit from the facilities and potentials hidden in Facebook. Facebook alone cannot be a factor in the success of your business. So, you should use Facebook as a bridge to acquaint your audience with your main sales channel, which could be another social network or your website. Once you have successfully attracted your users on a global scale, it is time to use its practical tools to attract international customers. The essence of Facebook is free and building and running a business page on it will not cost you anything. But once you get to the right place on the network, the cost of smart advertising may seem very reasonable.