mimetic 0.9.1 review

Download
by rbytes.net on

mimetic is a powerful, full featured, STL-based, standards compliant C++ MIME library. mimetic is a GPL MIME library written in C++

License: GPL (GNU General Public License)
File size: 414K
Developer: Stefano Barbato
0 stars award from rbytes.net

mimetic is a powerful, full featured, STL-based, standards compliant C++ MIME library.

mimetic is a GPL MIME library written in C++ designed to be easy to use and integrate but yet fast and efficient.

I'm a fan of the C++ Standard Library so mimetic has been built around the standard lib. This means that you'll not find yet another string class or list implementation and that you'll feel comfortable in using this library from the very first time.

mimetic doesn't use exceptions but it heavily uses templates so a mostly standard compliant C++ compiler is required. I developed it using GCC 3.x and tested on most Unixes.

When it comes to performance the stdlib is important (and GCC's is not the fastest library around) so mimetic code include some classes that are not strictly needed but are there just to improve performance (for ex. the File class for memory mapped file access).

Most classes functionalities and behavior will be clear if you ever studied MIME and its components; if you don't know anything about Internet messages you'll probably want to read some RFCs to understand the topic and, therefore, easily use the library whose names, whenever possible, overlap terms adopted in the standard RFC documents. At the very least: RFC 822, RFC 2045 and RFC 2046.

Very easy to use

This was, from the beginning, one of the objectives of mimetic.
If you know the MIME standard you'll rarely need online documentation.

Full featured

Everything you expect to find in a MIME library is already into mimetic, if you'll not find it is because your requirements are probably insane :) Oh well cryptography is not in the library yet, but it will some day.

Standard compliant

mimetic tries to follow current standards as closely as possible.

STL based

This could be a very big advantage if you know the STL and want to integrate mimetic into your STL based project. You'll have same powerful concepts and classes fully applicable to emails. If you don't know the STL so this is a good opportunity to learn it! A very good reference (yet freely readable) is the Dinkum C++ Library Reference.

Compile-time codec chains

Codec chains are template based so that codecs are chained together by the compiler using inline functions whenever possible to speed up runtime performance. Creating a codec chain will sound very familiar if you know Unix pipes:

codec0 | codec1 | codec2 | ... | last_codec
Jump to a more complete example

Portable

I've personally tested it on Linux, {Open,Free,Net}BSD, Solaris, Mac OS X. It uses Autotools to compile so porting on any Unix system should be easy.
You can also easily compile mimetic on Windows using files in win32 directory (thanks to Andreas Gruen who worked on Windows port). Project files come out Visual Studio 2003 .NET.
For questions regarding Windows port you can contact Andreas at

More then 50 test functions, more then 2500 checks

cutee has been used for Unit Testing and there are a lot of tests the run automatically every time someone compiles mimetic. This doesn't mean that it's bug free but it helps.

Open source

Source code of the library, tests and examples are bundled into the distribution package. All except codec code (that is heavily template based) is very readable so if Documentation is not good enough for you sources can be your primary reference.

HTML documentation

Library documentation is generated from source code by Doxygen. You can browse it online of generate yourself for offline browsing.

What's New in This Release:
gcc 4.x compatibility was fixed.
An assert() on malformed quoted-printable messages was removed.

mimetic 0.9.1 keywords