Skip to content
This repository was archived by the owner on Sep 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 12 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,49 +1,34 @@
# NOTICE ABOUT STATUS

The second edition of The Rust Programming Language is getting ever closer to being printed!
This means we're not able to make large changes to chapters that are in any column to the
right of, and including, the "Frozen" column [on our Project board][proj]. Issues or pull
requests submitted for frozen chapters are welcome but will be closed until we start work
on a third edition. Thank you!

[proj]: https://github.com/rust-lang/book/projects/1
> **This is a fork of [rust-lang/book](https://github.com/rust-lang/book) in order to translate the English (second-edition) book in French.**
>
> Please read the help [TRANSLATE.md](https://github.com/quadrifoglio/rust-book-fr/blob/master/second-edition/TRANSLATING.md) !

# The Rust Programming Language

[![Build Status](https://travis-ci.org/rust-lang/book.svg?branch=master)](https://travis-ci.org/rust-lang/book)

This repo contains two editions of “The Rust Programming Language”; we
recommend starting with the second edition.
This repo contains two editions of “The Rust Programming Language”.

The second edition is a rewrite that will be printed by No Starch Press,
available around May 2018. Check [the No Starch Page][nostarch] for the latest
information on the release date and how to order.
The second edition is a rewrite that will be printed by NoStarch Press,
available around October 2017.

[nostarch]: https://nostarch.com/rust
[You can read it online][html]; the last few chapters aren't completed yet, but
the first half of the book is much improved from the first edition. We recommend
starting with the second edition.

You can read the book for free online! Please see the book as shipped with the
latest [stable], [beta], or [nightly] Rust releases. Be aware that issues in
those versions may have been fixed in this repository already.

[stable]: https://doc.rust-lang.org/stable/book/second-edition/
[beta]: https://doc.rust-lang.org/beta/book/second-edition/
[nightly]: https://doc.rust-lang.org/nightly/book/second-edition/
[html]: http://rust-lang.github.io/book/

[The first edition is still available to read online][first].

[first]: https://doc.rust-lang.org/book/


## Requirements

Building the book requires [mdBook], ideally the same version that
[rust-lang/rust uses in this file][rust-mdbook]. To get it:
Building the book requires [mdBook] >= v0.0.13. To get it:

[mdBook]: https://github.com/azerupi/mdBook
[rust-mdbook]: https://github.com/rust-lang/rust/blob/master/src/tools/rustbook/Cargo.toml

```bash
$ cargo install mdbook --vers [version-num]
$ cargo install mdbook
```

## Building
Expand Down
16 changes: 16 additions & 0 deletions second-edition/TRANSLATING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Translation process

1. Ask for the access rights to the french fork on the [initial issue](https://github.com/rust-lang/book/issues/808).
2. Choose a chapter to work on, from the ["french translations" board](https://github.com/quadrifoglio/rust-book-fr/projects/1). Make sure that the original writers marked it as "frozen", and
that the source is is up to date with the [original version](https://github.com/rust-lang/book).
3. Please create a [branch](https://github.com/quadrifoglio/rust-book-fr/branches) in order to work on your translation.
4. Translate the chapter.
5. When you are satisfied with your translation, and want feedback/help on your work, please open a [PR](https://github.com/quadrifoglio/rust-book-fr/pulls).

When the PR is created, you can ask for a review from the other contributors.
You can also help by taking a look at the opened PRs, do not hesitate to comment or provide corrections.

## Tool suggestions

- [BonPatron](http://bonpatron.com/)
- [DeepL Translator](https://www.deepl.com/translator)
77 changes: 43 additions & 34 deletions second-edition/src/foreword.md
Original file line number Diff line number Diff line change
@@ -1,41 +1,50 @@
# Foreword
# Préface

It wasn’t always so clear, but the Rust programming language is fundamentally
about *empowerment*: no matter what kind of code you are writing now, Rust
empowers you to reach farther, to program with confidence in a wider variety of
domains than you did before.
Ce ne fut pas toujours très clair, mais le langage Rust a pour but de permettre
*l'autonomie* : quelque soit le programme que vous êtes actuellement en train
d'écrire, Rust vous permet d'aller plus loin, de programmer avec confiance dans
un plus large champ de domaines qu'auparavant.

Take, for example, “systems-level” work that deals with low-level details of
memory management, data representation, and concurrency. Traditionally, this
realm of programming is seen as arcane, accessible only to a select few who
have devoted the necessary years learning to avoid its infamous pitfalls. And
even those who practice it do so with caution, lest their code be open to
exploits, crashes, or corruption.
Prenons par exemple le travail du niveau système *(NdT : system-level)* qui gère
tous les détails bas niveaux de la mémoire, de la représentation des données, et
du parallélisme. Traditionnellement, ce domaine de la programmation est souvent
perçue comme mystique, accessible seulement à un petit nombre d'élus qui ont
passé de nombreuses années à parfaire leur savoir pour éviter leurs pièges
tristement célèbres. Et même ceux qui ont été introduit à ces arcanes les
manipulent avec précaution, de peur d'ouvrir leur code aux failles, plantages ou
corruptions.

Rust breaks down these barriers by eliminating the old pitfalls and providing a
friendly, polished set of tools to help you along the way. Programmers who need
to “dip down” into lower-level control can do so with Rust, without taking on
the customary risk of crashes or security holes, and without having to learn
the fine points of a fickle toolchain. Better yet, the language is designed to
guide you naturally towards reliable code that is efficient in terms of speed
and memory usage.
Le langage Rust abat ces barrières en éliminant ces vieux écueils et en
fournissant un ensemble d'outils amicaux qui vous aident tout au long de votre
développement. Les développeurs qui ont besoin de "plonger" dans les contrôles
bas niveaux peuvent le faire avec Rust, sans prendre les risques habituels de
plantages ou de failles de sécurité, et sans à avoir à apprendre en détails
toutes les subtilités d'une chaîne d'outils instables. Encore mieux, le langage
est conçu pour vous guider naturellement vers l'écriture d'un code sûr qui est
efficient en termes de vitesse d'exécution et d'usage de la mémoire.

Programmers who are already working with low-level code can use Rust to raise
their ambitions. For example, introducing parallelism in Rust is a relatively
low-risk operation: the compiler will catch the classical mistakes for you. And
you can tackle more aggressive optimizations in your code with the confidence
that you won’t accidentally introduce crashes or exploits.
Les développeurs qui ont déjà travaillé sur du code bas niveau peuvent également
utiliser Rust pour revoir à la hausse leurs ambitions. Par exemple, introduire
le parallélisme en Rust est une opération relativement peu risquée : le
compilateur va vous signaler toutes les erreurs classiques pour vous. Ainsi vous
pourrez vous attaquer à des optimisations plus agressives de votre code avec la
certitude que vous n'introduisez aucun plantage ou faille de sécurité par
accident.

But Rust isn’t limited to low-level systems programming. It’s expressive and
ergonomic enough to make CLI apps, web servers, and many other kinds of code
quite pleasant to write — you’ll find simple examples of both later in the
book. Working with Rust allows you to build skills that transfer from one
domain to another; you can learn Rust by writing a web app, then apply those
same skills to target your Raspberry Pi.
Mais Rust n'est pas seulement limité à la programmation système bas niveau. Il
est suffisamment expressif et ergonomique pour rendre les applications en ligne
de commande, les serveurs web, et bien d'autres types de code très agréables à
développer (vous retrouverez des exemples simples de cela plus loin dans le
livre). Travailler avec Rust vous permet de développer des compétences qui
peuvent être transmises d'un domaine à un autre ; vous pouvez apprendre le Rust
en développant une application web, puis utiliser ces mêmes acquis pour du
développement sur Raspberry Pi.

This book fully embraces the potential of Rust to empower its users. It’s a
friendly and approachable text intended to help you level up not just your
knowledge of Rust, but also your reach and confidence as a programmer in
general. So dive in, get ready to learn—and welcome to the Rust community!
Ce livre englobe pleinement le potentiel du Rust pour permettre à ses
utilisateurs *d'être autonome*. C'est un ouvrage convivial et accessible
destiné à vous aider à améliorer non seulement votre connaissance de Rust, mais
aussi vos compétences et votre confiance en tant que développeur en général.
Alors, plongez vous dans ce livre, préparez vous à apprendre ... et bienvenue
dans la communauté Rust !

— Nicholas Matsakis and Aaron Turon
— Nicholas Matsakis and Aaron Turon