惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
N
Netflix TechBlog - Medium
F
Full Disclosure
I
InfoQ
Jina AI
Jina AI
GbyAI
GbyAI
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
腾讯CDC
博客园 - 司徒正美
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
B
Blog
A
About on SuperTechFans
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
C
Check Point Blog
J
Java Code Geeks
L
LangChain Blog
WordPress大学
WordPress大学
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
爱范儿
爱范儿
Recorded Future
Recorded Future
小众软件
小众软件
Microsoft Security Blog
Microsoft Security Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
IT之家
IT之家
博客园 - 聂微东
量子位
G
Google Developers Blog
Vercel News
Vercel News
B
Blog RSS Feed
阮一峰的网络日志
阮一峰的网络日志
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
MyScale Blog
MyScale Blog
罗磊的独立博客
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More

Rust Blog

Security Advisory for Cargo (CVE-2026-5223) | Rust Blog Security Advisory for Cargo (CVE-2026-5222) | Rust Blog Project goals update — April 2026 (end of 2025H2) | Rust Blog Rust is participating in Outreachy | Rust Blog Raising the baseline for the `nvptx64-nvidia-cuda` target | Rust Blog Announcing Google Summer of Code 2026 selected projects | Rust Blog Announcing Rust 1.95.0 | Rust Blog docs.rs: building fewer targets by default | Rust Blog Changes to WebAssembly targets and handling undefined symbols | Rust Blog Announcing Rust 1.94.1 | Rust Blog Security advisory for Cargo | Rust Blog What we heard about Rust's challenges | Rust Blog Call for Testing: Build Dir Layout v2 | Rust Blog Announcing rustup 1.29.0 | Rust Blog Announcing Rust 1.94.0 | Rust Blog 2025 State of Rust Survey Results | Rust Blog Rust debugging survey 2026 | Rust Blog Update on the October 15, 2018 incident on crates.io Announcing Rust 1.29.2 Announcing Rust 1.29 Launching the 2018 State of Rust Survey Announcing Rust 1.28 What is Rust 2018? Announcing Rust 1.27.2 Announcing Rust 1.27.1 Security Advisory for rustdoc Announcing Rust 1.27 Announcing Rust 1.26.2 Announcing Rust 1.26.1 Rust turns three Announcing Rust 1.26 The Rust Team All Hands in Berlin: a Recap Increasing Rust’s Reach 2018 Announcing Rust 1.25 Rust's 2018 roadmap Announcing Rust 1.24.1 Announcing Rust 1.24 The 2018 Rust Event Lineup Announcing Rust 1.23 New Year's Rust: A Call for Community Blogposts Rust in 2017: what we achieved Announcing Rust 1.22 (and 1.22.1) Fearless Concurrency in Firefox Quantum Announcing Rust 1.21 impl Future for Rust Rust 2017 Survey Results Announcing Rust 1.20 Announcing Rust 1.19 The 2017 Rust Conference Lineup Rust's 2017 roadmap, six months in Increasing Rust’s Reach Announcing Rust 1.18 Two years of Rust The Rust Libz Blitz Launching the 2017 State of Rust Survey Announcing Rust 1.17 Announcing Rust 1.16 Rust's language ergonomics initiative Announcing Rust 1.15.1 Rust's 2017 roadmap Announcing Rust 1.15 Announcing Rust 1.14 Announcing the First Underhanded Rust Contest Announcing Rust 1.13 Announcing Rust 1.12.1 Announcing Rust 1.12 Incremental Compilation Announcing Rust 1.11 Shape of errors to come The 2016 Rust Conference Lineup Announcing Rust 1.10 State of Rust Survey 2016 Announcing Rust 1.9 One year of Rust Taking Rust everywhere with rustup Launching the 2016 State of Rust Survey Cargo: predictable dependency management Introducing MIR Announcing Rust 1.7 Announcing Rust 1.6 Announcing Rust 1.5 Announcing Rust 1.4 Announcing Rust 1.3 Rust in 2016 Announcing Rust 1.2 Rust 1.1 stable, the Community Subteam, and RustCamp Announcing Rust 1.0 Abstraction without overhead: traits in Rust Rust Once, Run Everywhere Mixing matching, mutation, and moves in Rust Fearless Concurrency with Rust Announcing Rust 1.0 Beta Announcing Rust 1.0.0.alpha.2 Rust 1.0: status report and final timeline Announcing Rust 1.0 Alpha Rust 1.0: Scheduling the trains Yehuda Katz and Steve Klabnik are joining the Rust Core Team Cargo: Rust's community crate host Stability as a Deliverable Road to Rust 1.0
Announcing Rust 1.8
The Rust Cor · 2016-04-14 · via Rust Blog

The Rust team is happy to announce the latest version of Rust, 1.8. Rust is a systems programming language focused on safety, speed, and concurrency.

As always, you can install Rust 1.8 from the appropriate page on our website, and check out the detailed release notes for 1.8 on GitHub. About 1400 patches were landed in this release.

What's in 1.8 stable

There are two new features in Rust 1.8, as well as good news for Windows users! Additionally, work is underway to replace our make-based build system with one based on Cargo.

The first feature is that the various “operator equals” operators, such as += and -=, are now overloadable via various traits. This change was accepted in RFC 953, and looks like this:

use std::ops::AddAssign;

#[derive(Debug)]
struct Count { 
    value: i32,
}
    
impl AddAssign for Count {
    fn add_assign(&mut self, other: Count) {
        self.value += other.value;
    }
}   

fn main() {
    let mut c1 = Count { value: 1 };
    let c2 = Count { value: 5 };

    c1 += c2;

    println!("{:?}", c1);
}

This will print out Count { value: 6 }. Like the other operator traits, an associated type allows you to use different types on each side of the operator, as well. See the RFC for more details.

The second feature is very small, and comes from RFC 218. Before Rust 1.8, a struct with no fields did not have curly braces:

struct Foo; // works
struct Bar { } // error

The second form is no longer an error. This was originally disallowed for consistency with other empty declarations, as well as a parsing ambiguity. However, that ambiguity is non-existent in post-1.0 Rust. Macro authors saw additional complexity due to needing a special-case, as well. Finally, users who do active development would sometimes switch between empty and non-empty versions of a struct, and the extra work and diffs involved was less than ideal.

On the Windows front, 32-bit MSVC builds now implement unwinding. This moves i686-pc-windows-msvc to a Tier 1 platform.

Finally, we have used make to build Rust for a very long time. However, we already have a wonderful tool for building Rust programs: Cargo. In Rust 1.8, initial support landed for a new build system that’s written in Rust, and based on Cargo. It is not yet the default, and there is much more work to do. We will talk about this in release notes more once it’s completely done, for now, please read the GitHub issue for more details.

Library stabilizations

About 20 library functions and methods are now stable in 1.8. There are three major groups of changes: UTF-16 related string methods, various APIs related to time, and the various traits needed for operator overloading mentioned in the language section.

See the detailed release notes for more.

Cargo features

There were a few updates to Cargo:

  • cargo init can be used to start a Cargo project in your current working directory, rather than making a new subdirectory like cargo new.
  • cargo metadata is another new subcommand for fetching metadata about a project.
  • .cargo/config now has keys for -v and --color
  • Cargo’s ability to have target-specific dependencies was enhanced.

See the detailed release notes for more.

Contributors to 1.8

We had 126 individuals contribute to 1.8. Thank you so much!

  • Aaron Turon
  • Abhishek Chanda
  • Adolfo Ochagavía
  • Aidan Hobson Sayers
  • Alan Somers
  • Alejandro Wainzinger
  • Aleksey Kladov
  • Alex Burka
  • Alex Crichton
  • Amanieu d'Antras
  • Andrea Canciani
  • Andreas Linz
  • Andrew Cantino
  • Andrew Horton
  • Andrew Paseltiner
  • Andrey Cherkashin
  • Angus Lees
  • arcnmx
  • Ariel Ben-Yehuda
  • ashleysommer
  • Benjamin Herr
  • Валерий Лашманов
  • Björn Steinbrink
  • bors
  • Brian Anderson
  • Brian Bowman
  • Christian Wesselhoeft
  • Christopher Serr
  • Corey Farwell
  • Craig M. Brandenburg
  • Cyryl Płotnicki-Chudyk
  • Daniel J Rollins
  • Dave Huseby
  • David AO Lozano
  • David Henningsson
  • Devon Hollowood
  • Dirk Gadsden
  • Doug Goldstein
  • Eduard Burtescu
  • Eduard-Mihai Burtescu
  • Eli Friedman
  • Emanuel Czirai
  • Erick Tryzelaar
  • Evan
  • Felix S. Klock II
  • Florian Berger
  • Geoff Catlin
  • ggomez
  • gohyda
  • Gökhan Karabulut
  • Guillaume Gomez
  • ituxbag
  • James Miller
  • Jeffrey Seyfried
  • John Talling
  • Jonas Schievink
  • Jonathan S
  • Jorge Aparicio
  • Joshua Holmer
  • JP Sugarbroad
  • Kai Noda
  • Kamal Marhubi
  • Katze
  • Kevin Brothaler
  • Kevin Butler
  • Manish Goregaokar
  • Markus Westerlind
  • Marvin Löbel
  • Masood Malekghassemi
  • Matt Brubeck
  • Michael Huynh
  • Michael Neumann
  • Michael Woerister
  • mitaa
  • Ms2ger
  • Nathan Kleyn
  • nicholasf
  • Nick Cameron
  • Niko Matsakis
  • Noah
  • NODA, Kai
  • Novotnik, Petr
  • Oliver Middleton
  • Oliver Schneider
  • petevine
  • Philipp Oppermann
  • pierzchalski
  • Piotr Czarnecki
  • pravic
  • Pyfisch
  • Richo Healey
  • Ruud van Asseldonk
  • Scott Olson
  • Sean McArthur
  • Sebastian Wicki
  • Sébastien Marie
  • Seo Sanghyeon
  • Simonas Kazlauskas
  • Simon Sapin
  • srinivasreddy
  • Steve Klabnik
  • Steven Allen
  • Steven Fackler
  • Stu Black
  • Tang Chenglong
  • Ted Horst
  • Ticki
  • tiehuis
  • Tim Montague
  • Tim Neumann
  • Timon Van Overveldt
  • Tobias Bucher
  • Tobias Müller
  • Todd Lucas
  • Tom Tromey
  • Tshepang Lekhonkhobe
  • ubsan
  • Ulrik Sverdrup
  • Vadim Petrochenkov
  • vagrant
  • Valentin Lorentz
  • Varun Vats
  • vegai
  • vlastachu
  • Wangshan Lu
  • York Xiang