https://github.com/google/btree

Last synced: about 1 month ago

Repository metadata:

BTree provides a simple, ordered, in-memory data structure for Go programs.


Owner metadata:


Committers metadata

Last synced: 2 months ago

Total Commits: 41
Total Committers: 14
Avg Commits per committer: 2.929
Development Distribution Score (DDS): 0.732

Commits in past year: 1
Committers in past year: 1
Avg Commits per committer in past year: 1.0
Development Distribution Score (DDS) in past year: 0.0

Name Email Commits
Graeme Connell g****l@g****m 11
Graeme Connell g****l@g****m 9
keep94 k****4@g****m 5
Josh Baker j****7@g****m 3
Matt Gaunt m****t@g****m 3
Colin Arnott g****b@u****k 2
Adam Colton a****n@g****m 1
Joe Farrell j****l@g****m 1
Jonathan Boulle j****e@g****m 1
Julien Robert j****n@r****r 1
Luffbee l****e@o****m 1
ShuNing n****h@g****m 1
Tuan Anh Tran me@t****g 1
zhangchuanqing1 z****1@j****m 1

Issue and Pull Request metadata

Last synced: about 1 month ago


Package metadata

go: github.com/google/btree

Package btree implements in-memory B-Trees of arbitrary degree. btree implements an in-memory B-Tree for use as an ordered data structure. It is not meant for persistent storage solutions. It has a flatter structure than an equivalent red-black or other binary tree, which in some cases yields better memory usage and/or performance. See some discussion on the matter here: Note, though, that this project is in no way related to the C++ B-Tree implementation written about there. Within this tree, each node contains a slice of items and a (possibly nil) slice of children. For basic numeric values or raw structs, this can cause efficiency differences when compared to equivalent C++ template code that stores values in arrays within the node: These issues don't tend to matter, though, when working with strings or other heap-allocated structures, since C++-equivalent structures also must store pointers and also distribute their values across the heap. This implementation is designed to be a drop-in replacement to gollrb.LLRB trees, (http://github.com/petar/gollrb), an excellent and probably the most widely used ordered tree implementation in the Go ecosystem currently. Its functions, therefore, exactly mirror those of llrb.LLRB where possible. Unlike gollrb, though, we currently don't support storing multiple equivalent values. There are two implementations; those suffixed with 'G' are generics, usable for any type, and require a passed-in "less" function to define their ordering. Those without this prefix are specific to the 'Item' interface, and use its 'Less' function for ordering.

  • Homepage: https://github.com/google/btree
  • Documentation: https://pkg.go.dev/github.com/google/btree#section-documentation
  • Licenses: Apache-2.0
  • Latest release: v1.1.2 (published over 2 years ago)
  • Last Synced: 2024-11-11T01:02:45.982Z (about 1 month ago)
  • Versions: 6
  • Dependent Packages: 19,921
  • Dependent Repositories: 129,423
  • Docker Downloads: 32,136,040,557
  • Rankings:
    • Dependent repos count: 0.005%
    • Docker downloads count: 0.01%
    • Dependent packages count: 0.01%
    • Average: 0.533%
    • Stargazers count: 1.181%
    • Forks count: 1.458%

Dependencies

.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • actions/setup-go v2 composite