Я ищу компактную и хорошо сконструированную реализацию библиотеки B-tree с открытым исходным кодом, написанную на C. Она должна быть под лицензией без лицензии GPL, чтобы ее можно было использовать в коммерческом приложении. В идеале эта библиотека поддерживает индекс B-дерева, который должен храниться / обрабатываться как дисковый файл, так что большие деревья могут быть построены с использованием настраиваемого (т.е. минимального) объема ОЗУ.
Примечание. Поскольку возникла некоторая путаница, двоичное дерево и B-дерево - это нет одно и то же.





Автор Реализация SQLite отказался от авторских прав. Если LGPL в порядке, то, может быть, вы могли бы использовать Реализация GNUpdate?
Если LGPL в порядке, то Токийский кабинет может соответствовать всем требованиям. LGPL позволяет связываться с несвободным приложением, не добавляя никаких ограничений на распространение конечного продукта.
Вроде переехал на fallabs.com/tokyocabinet.
Kyoto Cabinet - это продолжение GPL после Tokyo Cabinet, но после его использования в течение некоторого времени у него есть очень плохие привычки, например, отсутствие обработки исключений, поэтому на std :: bad_alloc происходит сбой приложения или неопределенные и неограниченные шаблоны использования памяти.
Может быть, вы можете рассмотреть Berkeley db. Он внутренне использует b-дерево.
Я наткнулся на это - База данных B-Tree WB для SCM, Java, C# и C, которая является пакетом GNU.
Привлекательный хаос реализует kbtree.h. Это эффективная библиотека B-дерева
Проверьте QDBM: http://fallabs.com/qdbm/. Это LGPL (может использоваться в коммерческом приложении), реализует хеш-функцию на диске и / или дерево B + с произвольными парами ключ / значение и строится на различных платформах.
Отлично! - Это хорошее дополнение к списку. Спасибо!
Если подумать, я думаю, что это тоже должен быть предпочтительный ответ.
GNUpdate - это B + Tree