2008-08-28 9 views
31

Estoy buscando una implementación de código abierto delgada y bien construida de una biblioteca B-tree escrita en C. Debe estar bajo una licencia no GPL para que pueda ser utilizada en una aplicación comercial. Idealmente, esta biblioteca admite el índice B-tree para ser almacenado/manipulado como un archivo de disco para que árboles grandes puedan ser construidos usando una huella de memoria configurable (es decir: mínima).¿Qué es una buena implementación de árbol abierto de código abierto en C?

Nota: Como parecía haber alguna confusión, un árbol binario y un árbol B son no lo mismo.

Respuesta

5

Echa un vistazo a QDBM: http://fallabs.com/qdbm/. Es LGPL (se puede usar en aplicaciones comerciales), implementa un hash respaldado por disco y/o un árbol B + con pares de clave/valor arbitrarios, y se basa en una variedad de plataformas.

+0

¡Agradable! - Esta es una buena adición a la lista. ¡Gracias! –

+0

Pensándolo bien, creo que esta también debería ser la respuesta preferida. –

6

Si LGPL está bien, entonces podría encajar en la cuenta. LGPL permite vincular con una aplicación no gratuita, sin agregar restricciones a la distribución del producto final.

+0

Parece que se ha movido a http://fallabs.com/tokyocabinet/. – florin

+0

Kyoto Cabinet es un seguimiento GPL al Tokyo Cabinet pero después de usarlo por un tiempo tiene algunos hábitos muy malos, por ejemplo, no se trata de una excepción, por lo que en std :: bad_alloc se bloquea la aplicación o patrones de uso de memoria indefinidos e incontrolables. – Lothar

0

Tal vez puedas considerar el berkeley db. Está utilizando un b-tree internamente.

2

Encontré this - La base de datos WB B-Tree para SCM, Java, C# y C que es un paquete GNU.

Cuestiones relacionadas