This document describes Mario, an asynchronous library that allows synchronous code to be executed asynchronously. It provides thread-safe asynchronous processing of messages by inheriting from a Handler class and implementing a processMsg function. The library uses background threads to consume messages put into a Mario instance, allowing the code to quickly return while the work continues in the background. It supports different storage engines like memory and files.