mimetic 0.9.1 review
Downloadmimetic is a powerful, full featured, STL-based, standards compliant C++ MIME library. mimetic is a GPL MIME library written in C++
|
|
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 search tags