Что такое хорошая реализация B-дерева с открытым исходным кодом на языке C?

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

Примечание. Поскольку возникла некоторая путаница, двоичное дерево и B-дерево - это нет одно и то же.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
34
0
28 823
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Автор Реализация SQLite отказался от авторских прав. Если LGPL в порядке, то, может быть, вы могли бы использовать Реализация GNUpdate?

GNUpdate - это B + Tree

Janus Troelsen 31.12.2013 14:46

Если LGPL в порядке, то Токийский кабинет может соответствовать всем требованиям. LGPL позволяет связываться с несвободным приложением, не добавляя никаких ограничений на распространение конечного продукта.

Вроде переехал на fallabs.com/tokyocabinet.

florin 27.01.2012 19:42

Kyoto Cabinet - это продолжение GPL после Tokyo Cabinet, но после его использования в течение некоторого времени у него есть очень плохие привычки, например, отсутствие обработки исключений, поэтому на std :: bad_alloc происходит сбой приложения или неопределенные и неограниченные шаблоны использования памяти.

Lothar 16.05.2014 17:10

Может быть, вы можете рассмотреть Berkeley db. Он внутренне использует b-дерево.

Я наткнулся на это - База данных B-Tree WB для SCM, Java, C# и C, которая является пакетом GNU.

Привлекательный хаос реализует kbtree.h. Это эффективная библиотека B-дерева

Ответ принят как подходящий

Проверьте QDBM: http://fallabs.com/qdbm/. Это LGPL (может использоваться в коммерческом приложении), реализует хеш-функцию на диске и / или дерево B + с произвольными парами ключ / значение и строится на различных платформах.

Отлично! - Это хорошее дополнение к списку. Спасибо!

Tall Jeff 15.03.2012 21:55

Если подумать, я думаю, что это тоже должен быть предпочтительный ответ.

Tall Jeff 15.03.2012 21:57

Другие вопросы по теме