Buffers are for binary data. Strings are for text. Robotskirt now appropiately accepts and returns text (not binary data). In fact, that's its purpose: accept Markdown *text*, return HTML *text*. Robotskirt cares about encoding (UTF-8) and decoding for you. This boosts efficiency (not having to make a fast buffer), reduces memory leaks (not having to work with a Buffer*) and simplifies the code. The results? Robotskirt is now FASTER THAN EVER: First version (0.x): 1849 ms Old version (1.x): 1794 ms Previous commit (2.x): 1935 ms This commit (2.x): 1490 ms `inline`-ing some functions has also helped in terms of performance.