Skip to content
The Dark Arts of Advanced and Unsafe Rust Programming
Branch: master
Clone or download
Gankro Merge pull request #101 from vorner/nll
Lifetimes: Updates to incorporate NLL
Latest commit c656171 Apr 25, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
src Lifetimes: Updates to incorporate NLL Apr 24, 2019
.gitignore let's ignore generated content Apr 14, 2017
.travis.yml unpin mdbook version Jul 26, 2018
LICENSE-APACHE first commit Mar 2, 2017
LICENSE-MIT first commit Mar 2, 2017 Add Mar 15, 2017

The Rustonomicon

The Dark Arts of Advanced and Unsafe Rust Programming

Nicknamed "the Nomicon."

NOTE: This is a draft document, and may contain serious errors

Instead of the programs I had hoped for, there came only a shuddering blackness and ineffable loneliness; and I saw at last a fearful truth which no one had ever dared to breathe before — the unwhisperable secret of secrets — The fact that this language of stone and stridor is not a sentient perpetuation of Rust as London is of Old London and Paris of Old Paris, but that it is in fact quite unsafe, its sprawling body imperfectly embalmed and infested with queer animate things which have nothing to do with it as it was in compilation.

This book digs into all the awful details that are necessary to understand in order to write correct Unsafe Rust programs. Due to the nature of this problem, it may lead to unleashing untold horrors that shatter your psyche into a billion infinitesimal fragments of despair.


Building the Nomicon requires mdBook. To get it:

$ cargo install mdbook


To build the Nomicon:

$ mdbook build

The output will be in the book subdirectory. To check it out, open it in your web browser.


$ firefox book/index.html                       # Linux
$ open -a "Firefox" book/index.html             # OS X
$ Start-Process "firefox.exe" .\book\index.html # Windows (PowerShell)
$ start firefox.exe .\book\index.html           # Windows (Cmd)


$ google-chrome book/index.html                 # Linux
$ open -a "Google Chrome" book/index.html       # OS X
$ Start-Process "chrome.exe" .\book\index.html  # Windows (PowerShell)
$ start chrome.exe .\book\index.html            # Windows (Cmd)

To run the tests:

$ mdbook test


Given that the Nomicon is still in a draft state, we'd love your help! Please feel free to open issues about anything, and send in PRs for things you'd like to fix or change. If your change is large, please open an issue first, so we can make sure that it's something we'd accept before you go through the work of getting a PR together.

You can’t perform that action at this time.