diff --git a/README.md b/README.md index 068f0f17..c4812be2 100644 --- a/README.md +++ b/README.md @@ -139,8 +139,8 @@ You can read or write your full and complex data structure into [JSON](https://e M\*LIB is distributed under BSD-2 simplified license. It is strongly advised not to read the source to know how to use the library -as the code is quite complex and uses a lot of tricks -but rather read the examples. +as the code is quite complex and uses a lot of tricks. +You should rather read the examples. In this documentation, * _shall_ will be used to indicate a user constraint that is @@ -149,6 +149,22 @@ mandatory to follow under penalty of undefined behavior. All pointers expected by the functions of the library shall expect non-null argument except if indicated. +## Key points + +* Genericity Mechanism through code generation by macro-base approaches while keeping code size reasonable, +* Minimum supported C Standard is C99, +* Header only library (easier to integrate), +* Performance: M\*LIB is highly optimized wut =h Minimal Runtime Overheader in Release mode, +* Type Safety: Compiler catches type mismatches. +* Runtime errors: Assertion are enabled in Debug mode and check for contract violiation and runtime errors are enabled for robustness in debug mode, +* High focus on homogeneous API design and ease of use, +* Near 100% coverage in instruction and decision by the test suite, +* Actively maintained library, +* Can be used fully without any macro usage outside of its code generation section, +* Provide all the standard containers (vectors, lists, hash maps, sets, queues, etc.) and algorithms (sort, search) and even more, +* Fully custimisable memory allocator, +* Can use _Generic keyword for uniform usage of the operators on any registered type. + ## Components The following headers define containers that don't require the user structure to be modified: