|
| 1 | +# The Rustonomicon |
| 2 | + |
| 3 | +The Dark Arts of Advanced and Unsafe Rust Programming |
| 4 | + |
| 5 | +Nicknamed "the Nomicon." |
| 6 | + |
| 7 | +## NOTE: This is a draft document, and may contain serious errors |
| 8 | + |
| 9 | +> Instead of the programs I had hoped for, there came only a shuddering blackness |
| 10 | +and ineffable loneliness; and I saw at last a fearful truth which no one had |
| 11 | +ever dared to breathe before — the unwhisperable secret of secrets — The fact |
| 12 | +that this language of stone and stridor is not a sentient perpetuation of Rust |
| 13 | +as London is of Old London and Paris of Old Paris, but that it is in fact |
| 14 | +quite unsafe, its sprawling body imperfectly embalmed and infested with queer |
| 15 | +animate things which have nothing to do with it as it was in compilation. |
| 16 | + |
| 17 | +This book digs into all the awful details that are necessary to understand in |
| 18 | +order to write correct Unsafe Rust programs. Due to the nature of this problem, |
| 19 | +it may lead to unleashing untold horrors that shatter your psyche into a billion |
| 20 | +infinitesimal fragments of despair. |
| 21 | + |
| 22 | +### Requirements |
| 23 | + |
| 24 | +Building the Nomicon requires [mdBook]. To get it: |
| 25 | + |
| 26 | +[mdBook]: https://github.com/azerupi/mdBook |
| 27 | + |
| 28 | +```bash |
| 29 | +$ cargo install mdbook |
| 30 | +``` |
| 31 | + |
| 32 | +### Building |
| 33 | + |
| 34 | +To build the Nomicon: |
| 35 | + |
| 36 | +```bash |
| 37 | +$ mdbook build |
| 38 | +``` |
| 39 | + |
| 40 | +The output will be in the `book` subdirectory. To check it out, open it in |
| 41 | +your web browser. |
| 42 | + |
| 43 | +_Firefox:_ |
| 44 | +```bash |
| 45 | +$ firefox book/index.html # Linux |
| 46 | +$ open -a "Firefox" book/index.html # OS X |
| 47 | +$ Start-Process "firefox.exe" .\book\index.html # Windows (PowerShell) |
| 48 | +$ start firefox.exe .\book\index.html # Windows (Cmd) |
| 49 | +``` |
| 50 | + |
| 51 | +_Chrome:_ |
| 52 | +```bash |
| 53 | +$ google-chrome book/index.html # Linux |
| 54 | +$ open -a "Google Chrome" book/index.html # OS X |
| 55 | +$ Start-Process "chrome.exe" .\book\index.html # Windows (PowerShell) |
| 56 | +$ start chrome.exe .\book\index.html # Windows (Cmd) |
| 57 | +``` |
| 58 | + |
| 59 | +To run the tests: |
| 60 | + |
| 61 | +```bash |
| 62 | +$ mdbook test |
| 63 | +``` |
| 64 | + |
| 65 | +## Contributing |
| 66 | + |
| 67 | +Given that the Nomicon is still in a draft state, we'd love your help! Please feel free to open |
| 68 | +issues about anything, and send in PRs for things you'd like to fix or change. If your change is |
| 69 | +large, please open an issue first, so we can make sure that it's something we'd accept before you |
| 70 | +go through the work of getting a PR together. |
0 commit comments