
Rust Programming Language Book - dolftax
https://doc.rust-lang.org/book/
======
kibwen
There's also an O'Reilly book available for preorder, authored by Mozilla's
Jim Blandy:
[http://www.oreilly.com/pub/e/3291?reminder](http://www.oreilly.com/pub/e/3291?reminder)

Packt also has a book on Rust which should be available soon, though I've
never heard of the author and so I can't speak as to the quality:
[https://www.packtpub.com/application-development/rust-
essent...](https://www.packtpub.com/application-development/rust-essentials)

There's also this draft of a Kickstarter for a book on Rust, though again I've
not heard of the author before:
[https://www.kickstarter.com/projects/1712125778/1409335994?t...](https://www.kickstarter.com/projects/1712125778/1409335994?token=951963e5)

Oh, and there's at least one more book in the pipe, and this one in particular
_is_ being developed by members of the Rust community... expect an
announcement soon. :)

~~~
peteretep
Are there _any_ good Packt press books? At all?

~~~
digitalzombie
Packt books used to be good, their paper and cover quality aren't good.

Nowadays, it seems like they're trying to output as many books as possible
regardless of the qualities. Most of the books are around 100-150 pages ugh.

On the other hand, Manning Publishing keep on taking my money, I really hope
they start putting out book quality similar to Packt so I can stop spending
money on them.

O'Reily have some really good book too like wise with No Starch Publishing. No
Starch Pub have some of the best book material I've ever encountered minus web
design books. Pragmatic Bookshelf have some quality books too and classic.

~~~
estsauver
I've found O'Reily has maybe a ~70% hit rate. Everything they produce is
generally at least Okay, but _everything_ I've read from Nostarch has been
worthwhile.

Manning is also great. Pragprog is also pretty great.

~~~
billpollock
Thanks. I'm editing some of our new books right now, but I might just play
Plants vs. Zombies instead.

~~~
alfiedotwtf
Thanks Bill. Nothing but praise for Nostarch!

The other greats for quality of content are Morgan Kaufmann, and Springer.

------
killercup
Unofficial (but mostly up-to-date) ebook versions (PDF, EPUB, MOBI, HTML):
[http://killercup.github.io/trpl-ebook/](http://killercup.github.io/trpl-
ebook/)

~~~
homarp
Does the epub version display the code source OK for you ? Mine is broken, but
I can't tell if it is my reader or the epub.

~~~
killercup
I only tested it in iBooks and Calibre. On Kindle, it works as well.

There are some code snippets that are not highlighted, though. It'll be fixed
in the next version.

------
Q6T46nT668w6i3m
The Rust Programming Language Book has been a fantastic resource.

I was recently complaining to myself about some style and grammar issues (e.g.
"Book" is redundant in the title of a book), but I realized I'm complaining
about style and grammar issues of comprehensive documentation for a recently
released programming language!

I respect the effort Rust and Steve have invested in documentation and hope
their effort is replicated elsewhere.

~~~
steveklabnik
Thanks so much <3

Generally speaking, I would love complaints about style and grammar issues, to
a point anyway. It's important to me that the informal / conversational tone
remains, but generally speaking, I try to get the details right.

(We don't have 'book' in the title of the book, that's just the HN title.)

~~~
agwa
I read the book last week - thank you for writing it!

I really hope you reconsider your stance on the conversational tone, which
made reading the book difficult at times. Being informal or conversational is
not bad per se, but it leads to verbosity that obscures the content. Cutting
out some of the current verbosity would make the book a lot clearer and easier
to digest, and I think you can do this without sacrificing the friendliness
and approachability of the book.

~~~
eropple
_> Cutting out some of the current verbosity would make the book a lot clearer
and easier to digest_

For you. I find good rhetorical writing easier to read and more likely to
stick.

------
Jemaclus
I've been messing around with Rust since 0.4, but I've never really gotten
super into it. Part of it stems from lack of time to invest in it (I have
other priorities), but I've realized that my biggest struggle is that I've
spent the last several years invested in a web background with OOP tendencies,
and I have the hardest time elucidating my ideas into the Rust imperative
language.

It would be awesome if there were more/better documentation on how to think
about things in the Rust-style, as opposed to the OOP way that Ruby or Python
or PHP (or to a lesser extent, Javascript) tend to espouse.

------
charlieegan3
[http://rustbyexample.com](http://rustbyexample.com) Is also good.

------
brakmic
My small Rust-related link-collection.

[https://rust.zeef.com/harris.brakmic](https://rust.zeef.com/harris.brakmic)

------
cdnsteve
Coming from a dynamic languages background, it's great to see that systems
details are introduced so those of us without C can get the hang of Rust.
Great to see such a nice resource available.

~~~
Dewie3
And for my part, I'm glad that I will probably be able to read about higher-
level[1] system programming concepts like custom allocators eventually,
without having to _grok_ C++.

[1] C isn't really crazy on the generic/meta-programming compared to C++, it
seems.

~~~
pjmlp
> C isn't really crazy on the generic/meta-programming compared to C++, it
> seems.

C was already the Go of its generation(Mesa, Algol 68, CLU,PL/I, PL/M) so,
yeah.

------
chenzhekl
Examples in Chapter "Mutability" are kind of difficult for newbies like me.
With no prior knowledge given, It's very difficult to understand what
`std::sync::Arc` is used for, and why it represents some kind of "interior
mutability".

There are many other similar problems throughout the book. More work needs to
be done.

~~~
steveklabnik
Agreed. I've been focusing on getting the absolute basics in place, and it's
already taken over 250 pages. I'm working on putting some muscle on that
skeleton now.

------
alexnewman
From a smart friend

Rust needs a better tutorial of ownership. It's novel, so it warrants the most
explanation.

~~~
mbrubeck
I agree. I personally found these two blog posts to be useful introductions to
ownership and borrowing:

[http://blog.skylight.io/rust-means-never-having-to-close-
a-s...](http://blog.skylight.io/rust-means-never-having-to-close-a-socket/)

[http://arthurtw.github.io/2014/11/30/rust-borrow-
lifetimes.h...](http://arthurtw.github.io/2014/11/30/rust-borrow-
lifetimes.html)

~~~
badpenny
I may just be not very bright but I've read both of those plus the coverage in
the aforementioned book and I still regularly find myself banging my head
against the borrow checker when writing code myself. I think at least part of
the problem is the use of trivial examples.

I don't seem to have any problems with any of the other concepts used by the
language except where they overlap with the borrow checker (e.g. destructuring
a Box using).

------
KaiserY
[https://www.gitbook.com/book/kaisery/rust-book-
chinese](https://www.gitbook.com/book/kaisery/rust-book-chinese) Here comes
Chinese translation.

------
rayiner
This seems great as a learning resource. Looking forward to a TCPPPL-like
comprehensive reference.

~~~
mdup
I personally prefer the Rust documentation as a comprehensive reference than
the cover-to-cover design of a book such as The C++ Programming Language. (As
much as I prefer cppreference.com rather than Stroustrup's book.)

The Rust book is intended to be a quickstart to reading and writing Rust code.
However it's when you start perusing the std crate docs that you really learn
how to efficiently use the language.

Bonus points for the "src" link in the Rust docs. It always hurts when I have
to read C++ stdlib implementation -- but I find Rust's stdlib source a quite
pleasant read and a good source of examples.

------
AlleyTrotter
the Cargo example fails to build. Simply highlite copied to a src dir and it
fails with: failed to parse manifest at
`/home/john/data/projects/rust/hello/src/Cargo.toml`

~~~
steveklabnik
Do you have a Cargo.toml? The text explains how running 'cargo new' generates
one for you.

~~~
AlleyTrotter
yes I just pasted everything from the book and [CODE] $
~/data/projects/rust/hello/src$ cargo build

failed to parse manifest at
`/home/john/data/projects/rust/hello/src/Cargo.toml`

Caused by: either a [lib] or [[bin]] section must be present [/CODE]

Not a real good start for a introduction.

~~~
steveklabnik
You're inside the `src` directory. Try it from the top level
(~/data/projects/rust/hello) instead.

~~~
AlleyTrotter
Thanks I just figured that out. I does work from there. Thank You much

~~~
steveklabnik
Any time. Sorry it was a problem :/

