mirror of https://github.com/rust-lang/nomicon
				
				
				
			
							parent
							
								
									d08fe97d12
								
							
						
					
					
						commit
						3d4b55bdd0
					
				@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					# 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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Requirements
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Building the Nomicon requires [mdBook]. To get it:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[mdBook]: https://github.com/azerupi/mdBook
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ cargo install mdbook
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Building
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To build the Nomicon:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ mdbook build
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The output will be in the `book` subdirectory. To check it out, open it in
 | 
				
			||||||
 | 
					your web browser.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_Firefox:_
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ 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)
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_Chrome:_
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ 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:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```bash
 | 
				
			||||||
 | 
					$ mdbook test
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Contributing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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.
 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue