maxdz Software GmbH

Eng | Ger

Unser Team


B2B Produktekeyboard_arrow_down






B2C Produkte



mdz_containers - very lightweight, versatile and speedy C containers library. Source code of library is portable, conforms to ANSI C 89/90 Standard.

At the moment (February 2020), the library covers handling of vector, ASCII string, UTF-8 string, "wide character" string.
Builds for Win32/Win64, Linux, FreeBSD are available.

Please refer to mdz_containers Wiki for API detais.

mdz_containers Advantages

1. Very high portability: the whole code conforms to ANSI C 89/90 Standard. Multithreading/asynchronous part is POSIX compatible (under UNIX/Linux).

2. Very little dependencies: basically mdz_containers functions are only dependend on standard C-library memory-management/access functions. Multithreading part is dependend on POSIX pthreads API (under UNIX/Linux) and old process control/synchronization API (from Windows 2000). It means you can use library in your code withouth any further dependencies except standard plattform libraries/APIs.

3. Very fast: comparison tables are coming soon...

4. Flexibilty: nearly all functions contain not only "left position" but also "right position" parameters to limit processed area from right. String, Vector, etc containers contain more functions than according STL, boost or glib analogs have.

5. Extended error-checking: all functions preserve internal error-code pointing the problem. It is possible to use strict error-checking (when all preserved error-codes should be MDZ_ERROR_NONE) or "relaxed"-checking - when only returned mdz_false will indicate error.

6. Extended control: containers do only explicit operations. It means for example, when "insert" function is called - it will return error if there is not enough capacity in container. No implicit reservations will be made.

7. Attached usage: containers should not necessarily use dynamically-allocated memory - which may be not available on your embedded system (or if malloc()/free() are forbidden to use in you safety-critical software). Just attach container/data to your statically-allocated memory (similarly to "placement new" in C++) and use all containers functionality.

8. Unicode support: UTF-8, UTF-16, UTF-32 are supported.

9. Endianness-aware containers: utf16 and utf32 containers are endiannes-aware thus may be used to produce and manipulate strings with pre-defined endianness even if endianness of host differs.

10. Unicode "surrogate-pairs" awareness: 2-byte Unicode strings correctly process/distinguish "surrogate-pairs" as 1 Unicode symbol.

11. Multithreading: even faster execution of some functions (at present only ascii_find() as an example) using multiple threads/thread-pool.

12. Asynchronous execution: currently is limited with ascii_insert() and ascii_find() as examples.

Copyright Ⓒ 2017 - 2020 maxdz Software GmbH. All rights reserved.
Site content generated by mdzWebSiteGenerator Ⓒ 2017 - 2020 maxdz Software GmbH. All rights reserved.