Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/armon/go-radix
Golang implementation of Radix trees
https://github.com/armon/go-radix
Last synced: 5 days ago
JSON representation
Golang implementation of Radix trees
- Host: GitHub
- URL: https://github.com/armon/go-radix
- Owner: armon
- License: mit
- Created: 2014-08-01T01:40:30.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-07-06T07:38:33.000Z (7 months ago)
- Last Synced: 2025-01-19T19:50:40.435Z (6 days ago)
- Language: Go
- Size: 26.4 KB
- Stars: 896
- Watchers: 21
- Forks: 97
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- my-awesome - armon/go-radix - 07 star:0.9k fork:0.1k Golang implementation of Radix trees (Go)
README
go-radix [![Build Status](https://travis-ci.org/armon/go-radix.png)](https://travis-ci.org/armon/go-radix)
=========Provides the `radix` package that implements a [radix tree](http://en.wikipedia.org/wiki/Radix_tree).
The package only provides a single `Tree` implementation, optimized for sparse nodes.As a radix tree, it provides the following:
* O(k) operations. In many cases, this can be faster than a hash table since
the hash function is an O(k) operation, and hash tables have very poor cache locality.
* Minimum / Maximum value lookups
* Ordered iterationFor an immutable variant, see [go-immutable-radix](https://github.com/hashicorp/go-immutable-radix).
Documentation
=============The full documentation is available on [Godoc](http://godoc.org/github.com/armon/go-radix).
Example
=======Below is a simple example of usage
```go
// Create a tree
r := radix.New()
r.Insert("foo", 1)
r.Insert("bar", 2)
r.Insert("foobar", 2)// Find the longest prefix match
m, _, _ := r.LongestPrefix("foozip")
if m != "foo" {
panic("should be foo")
}
```