2008-08-28 8 views
31

Je suis à la recherche d'une implémentation Open Source allégée et bien construite d'une bibliothèque B-tree écrite en C. Elle doit être sous licence non-GPL pour pouvoir être utilisée dans une application commerciale. Idéalement, cette bibliothèque prend en charge l'index B-tree à stocker/manipuler sous la forme d'un fichier disque afin que les grands arbres puissent être construits en utilisant une empreinte RAM configurable (c'est-à-dire minimale).Qu'est-ce qu'une bonne implémentation B-tree open source en C?

Remarque: Comme il semblait y avoir une certaine confusion, un arbre binaire et un arbre B sont pas la même chose.

Répondre

5

Check out qdbm: http://fallabs.com/qdbm/. C'est LGPL (peut être utilisé dans une application commerciale), implémente un hachage protégé par disque et/ou un arbre B + avec des paires clé/valeur arbitraires, et s'appuie sur une variété de plates-formes.

+0

Nice! - C'est un bon ajout à la liste. Merci! –

+0

À la réflexion, je pense que cela devrait aussi être la réponse préférée. –

6

Si LGPL est ok, alors pourrait faire l'affaire. LGPL permet la liaison avec une application non-Free, sans ajouter de contraintes sur la distribution du produit final.

+0

Il semble avoir déménagé à http://fallabs.com/tokyocabinet/. – florin

+0

Kyoto Cabinet est une GPL suivi de Tokyo Cabinet mais après l'avoir utilisé pendant un moment il a de très mauvaises habitudes, par exemple aucune exception de manipulation sur std :: bad_alloc l'application plante ou des modes d'utilisation mémoire non définis et non contraints. – Lothar

0

Peut-être que vous pouvez considérer le db berkeley. Il utilise un b-tree en interne.

2

J'ai rencontré this - La base de données WB B-Tree pour SCM, Java, C# et C qui est un paquet GNU.