Was ist eine gute Open-Source-B-Tree-Implementierung in C? [closed]

Lesezeit: 2 Minuten

Benutzer-Avatar
Der große Jeff

Ich suche nach einer schlanken und gut konstruierten Open-Source-Implementierung einer in C geschriebenen B-Tree-Bibliothek. Sie muss unter einer Nicht-GPL-Lizenz stehen, damit sie in einer kommerziellen Anwendung verwendet werden kann. Idealerweise unterstützt diese Bibliothek das Speichern/Manipulieren des B-Tree-Index als Plattendatei, so dass große Bäume unter Verwendung eines konfigurierbaren (dh: minimalen) RAM-Fußabdrucks aufgebaut werden können.

Hinweis: Da es einige Verwirrung zu geben schien, sind ein Binärbaum und ein B-Baum nicht das gleiche.

Der Autor der SQLite-Implementierung hat das Urheberrecht abgelehnt. Wenn LGPL in Ordnung ist, könnten Sie vielleicht verwenden Implementierung von GNUpdate?

  • das GNUpdate ist ein B+Tree

    – Janus Troelsen

    31. Dezember 2013 um 10:46 Uhr

Benutzer-Avatar
Paul

Schauen Sie sich QDBM an: http://fallabs.com/qdbm/. Es ist LGPL (kann in kommerziellen Apps verwendet werden), implementiert einen festplattengestützten Hash und/oder B+-Baum mit beliebigen Schlüssel/Wert-Paaren und baut auf einer Vielzahl von Plattformen auf.

  • Nett! – Dies ist eine gute Ergänzung der Liste. Vielen Dank!

    – Großer Jeff

    15. März 2012 um 17:55 Uhr

  • Beim zweiten Nachdenken denke ich, dass dies auch die bevorzugte Antwort sein sollte.

    – Großer Jeff

    15. März 2012 um 17:57 Uhr

Benutzer-Avatar
Gulden

Wenn LGPL ok ist, dann Tokioter Kabinett könnte auf die Rechnung passen. LGPL ermöglicht die Verknüpfung mit einer nicht-freien Anwendung, ohne Einschränkungen für die Verteilung des Endprodukts hinzuzufügen.

  • Es scheint umgezogen zu sein fallabs.com/tokyocabinet .

    – Gulden

    27. Januar 2012 um 15:42 Uhr

  • Kyoto Cabinet ist ein GPL-Nachfolger von Tokyo Cabinet, aber nachdem es eine Weile verwendet wurde, hat es einige sehr schlechte Angewohnheiten, zum Beispiel keine Ausnahmebehandlung, so dass die App bei std::bad_alloc abstürzt oder undefinierte und uneingeschränkte Speichernutzungsmuster aufweist.

    – Lothar

    16. Mai 2014 um 13:10 Uhr

Attraktives Chaos kbtree.h implementieren. Es ist eine effiziente B-Baum-Bibliothek

Ich bin gestoßen Dies – Die WB B-Tree-Datenbank für SCM, Java, C# und C, die ein GNU-Paket ist.

Benutzer-Avatar
Rechnung

Vielleicht können Sie die Berkeley DB in Betracht ziehen. Es verwendet intern einen B-Baum.

1384300cookie-checkWas ist eine gute Open-Source-B-Tree-Implementierung in C? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy