I wrote 4 tiny brainfuck compilers in Rust targeting x86, ARM, WebAssembly, and LLVM. The code is 100% safe Rust and is dependency-free. Excluding shared code (just the brainfuck parser) each compiler is standalone and is between just 100-180 lines of Rust. To share my learning experiences I wrote an accompanying article called Learn Assembly by Writing Entirely Too Many Brainfuck Compilers in Rust which goes into detail of how I arrived at all my implementations:
https://github.com/pretzelhammer/rust-blog/blob/master/posts...Please let me know if you have any questions or feedback. Thank you!