This is a guide to the Rust programming language. It was written by me, Ian Jackson, and I am responsible for the content and opinions.
Last revised and reviewed December 2022. (First edition September 2021.)
The rendered document can be found here:
Contributions are very welcome, ideally via Issue or Merge Request:
I am happy to hear contrary views, especially about the recommendations about particular crates. However, I will make the final decision about the content of this guide.
The document is in the intersection of
To format to HTML you will need to
cargo install mdbook and run
but untested contributions are welcome.
Please be sure to indicate your agreement with
the declarations in the
Developer Certificate of Origin,
for example by adding a
Signed-off-by line to your commits.
Acknowledging your contribution: If you would like to be acknowledged in the list below, please add your name there (as part of your MR).
Privacy: Note of course that since this guide is maintained in git, your contribution and any acknowledgement will be permanently recorded in the git history for reasons of traceability, auditability, transparency, and acknowledgement.
Thanks for helpful review, comments and suggestions from: Simon Tatham, Mark Wooding, Daniel Silverstone, and others.
Thanks to Mark Wooding for the LaTeX/PDF arrangements.
Rust for the Polyglot Programmer is
Copyright 2021-2022 Ian Jackson and contributors.
There is NO WARRANTY
This is "Rust for the Polyglot Programmer",
a guide to the Rust programming language.
Copyright (c) 2021-2022 Ian Jackson and contributors
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge,
publish, distribute, sublicense, and/or sell copies of the Software,
and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
For a list of the contributors to this guide, see the git history.
Individual files generally contain the following tag (or similar)
in the copyright notice, instead of the full licence grant text:
As is conventional, this should be read as a licence grant.
Contributions to Rust for the Polyglot Programmer are accepted based
on the git commit Signed-off-by convention, by which the contributors'
certify their contributions according to the Developer Certificate of
Origin version 1.1 - see the file DEVELOPER-CERTIFICATE.
If you create a new file please be sure to add an appropriate licence
header, probably something like this:
// Copyright by contributors to Rust for the Polyglot Programmer
// SPDX-License-Identifier: MIT
// There is NO WARRANTY.
Developer Certificate of Origin
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
formatted 2022-12-20 01:06:45 UTC