libstrvar is a simple variable library intended mostly to ease handling of strings and certain types of data exchange inside applications when using C. The project is multithreading safe and licensed under MIT license. It is capable of doing mathematical calculations using strings.
This library started as small helper library for Project Open Channel. It was used as internal data handler when parsing XML like layout files, parsing settings and delivering simple info inside applications. It is easy to use, you just set value for some variable and then use it elsewhere in the program. No need for global variables or externs. And if the variable does not exists, or is somehow invalid in other ways, libstrvar always returns valid value, so program wont crash.
Also, libstrvar is capable of doing mathematical calculations for strings. It can be used quite like as php. You first define some variables, then use them. And ofcourse, if you havent defined variable, it still works. In case of getting string value it simply returns empty string and in case of integer it returns 0.
Variable called "var" is set to contents "1 + 2 * $x".
Then Variable called "x" is set to contents "sin(1)".
Parsing of "var" results string "1 + 2 + sin(1)".
And calculating result of "var" returns "2.682941.."
libstrvar can also be used to store binary data. Simply said, it is kind of database for storing information using character strings as keys. Internal implementation is currently using linked lists, so its not as fast as it could be. Other features are more important currently.
NOTE: libstrvar is not fully finished and is so still beta! libstrvar API is not fully funtional, mostly the main parts of it work well, but there is some work to be done before it can be released as final.