Quick Start: ------------ - Download whole package. git clone --recurse-submodules https://github.com/Manderby/NALib.git There is a submodule for testing which you only need if you are testing. - To use NALib, there are two ways: 1. Compile NALib as part of your own solution by simply dragging the whole code\NALib\src folder into your project. 2. Use CMake to compile a static library of code/NALib Then, link to that library in your project. - Use CMake to build any of the example projects in the code folder. Description: ------------ NALib is a collection of source code written in the C programming language which contain code like system-dependent macros, high-performance functions and container structs, a small runtime system with memory pools and optional reference counting, a GUI implementation for Mac and Windows and many helpful comments. Email: nalib@manderc.com Follow on GitHub: https://github.com/Manderby/NALib/discussions - API is documented directly in the .h files. - Some design principles can be read in the doc/documentation.txt file. - NALib just needs the standard libraries. - Compilation of the whole collection usually takes less than 5 seconds. - The master branch contains the latest developments. - Older release versions are available as tags. Contribute & License: --------------------- - Write Issues and take part in the discussions on GitHub. - Write Emails to nalib@manderc.com. License: Public Domain History: -------- NALib originally started as a C++ helper code collection back in 2004 when I was working for an electric engineering company and was enhanced with many more helper snipplets by me over the following years during my research in a media technology institute. It allowed me and others to quickly implement our models, algorithms and data visualizations. In 2009, I collected all the snipplets together and formed a first combined version, known as MBLib. That version continued to be in use in the research lab for another three years and allowed me to get started with projects when I did found my own company Manderim in 2011. There, I used MBLib in projects for the consumer market and for the industry where it had been continuously verified in selling products. But as the field I was working in often times required implementations which work universally, I started to translate the whole library to plain C in 2013. This new library was then called NALib. NALib is short for "Not A Library". This name was chosen with the intention of it to be primarily used as source code, not as compiled libraries. The library was implemented so that it would build very fast but universally on multiple systems. With that, I had to spend less time on library compatibility issues. NALib was open to the public since the first version. After about 2 years, all crucial functionality of MBLib was translated to NALib. Therefore I discontinued development of MBLib and instead started to use NALib for all projects. Now, after some more years, the code collection did grow by quite a fair amount of code and functionality. Unfortunately, I had to close down my company in 2019, but still to this day, I am using NALib for my private projects and try to advance it whenever time fits. It currently uses C99 as well as some elements of C11 combined with a modern coding style which - hopefully - helps people value the C programming language as much as I do.