maildrop can optionally read filtering configuration from a file to determine whether the message is delivered to an alternate mailbox or forwarded. The structured filtering language is robust enough to allow maildrop to work with virtual mailboxes. If the filtering configuration contains syntax errors maildrop does not deliver the message but the message is not lost. 
maildrop is written in C++ however it uses resources more efficiently than procmail (written in C) by saving large messages to a temporary file rather than reading them into memory. If the input to maildrop is a file then a temporary file is not used.