This is a Rust implementation of Thorsten Ball's Monkey programming language from his excellent book Writing An Interpreter in Go. I built it as a fun way to learn the basics of Rust. An interpreter is great for this because you only use the standard library and don't yet have to worry about threads, network programming or a bunch of other complicated stuff. I attempted to keep the structure as close to Thorsten's Go implementation as possible, which means it might not be the best way to structure things in Rust (I'm still learning). Although I did pull in a few Rust idioms like results and error handling. I've written up more details on my learning process, and other stuff in my post Rust can be difficult to learn and frustrating, but it's also the most exciting thing in software development in a long time.