Written completely in Common Lisp, not using a foreign library. . It strives to achieve decent performance. Most of the encoding/decoding algorithms have been adapted from Clozure CL's source. . Another important goal is reusability. Similarly to SBCL, it defines an interface wherein the algorithms can be reused between a variety of data types so long we're dealing with conversions between octets and unicode code points. . Babel comes with converters between strings and octet vectors but can be easily extended to deal with, e.g., strings and foreign memory, vectors and Closure's runes, etc...