Есть ли приличная библиотека C с открытым исходным кодом для хранения и манипулирования
переменные с динамической типизацией (варианты с расширением a.k.a.)? В первую очередь меня интересуют атомарные значения (int8, int16, int32, uint, строки, BLOB-объекты и т. Д.), В то время как массивы и объекты в стиле JSON, а также пользовательские объекты также подойдут. Основной случай, когда такая библиотека была бы полезна, - это работа с базами данных SQL.
Наиболее очевидной особенностью такой библиотеки является единый тип для всех поддерживаемых значений, например ::
struct Variant {
enum Type type;
union {
int8_t int8_;
int16_t int16_;
// ...
};
};
Другие функции могут включать преобразование объектов Variant в / из структур C (с использованием таблицы привязок), преобразование значений в / из строк и интеграцию с существующей библиотекой базы данных, такой как SQLite.
Примечание: я не верю, что этот вопрос является дубликатом Любой библиотеки для универсальных типов данных в C? , которая ссылается на "очереди, деревья, карты, списки". То, о чем я говорю, больше сосредоточено на том, чтобы сделать работу с базами данных SQL примерно такой же гладкой, как работа с ними на интерпретируемых языках.