
This commit includes updates that affects the build, testing, and deployment of Tile38. - The root level build.sh has been broken up into multiple scripts and placed in the "scripts" directory. - The vendor directory has been updated to follow the Go modules rules, thus `make` should work on isolated environments. Also some vendored packages may have been updated to a later version, if needed. - The Makefile has been updated to allow for making single binaries such as `make tile38-server`. There is some scaffolding during the build process, so from now on all binaries should be made using make. For example, to run a development version of the tile38-cli binary, do this: make tile38-cli && ./tile38-cli not this: go run cmd/tile38-cli/main.go - Travis.CI docker push script has been updated to address a change to Docker's JSON repo meta output, which in turn fixes a bug where new Tile38 versions were not being properly pushed to Docker
52 lines
1.1 KiB
Markdown
52 lines
1.1 KiB
Markdown
# `rhh` (Robin Hood Hashmap)
|
|
|
|
[](https://godoc.org/github.com/tidwall/rhh)
|
|
|
|
A simple and efficient hashmap package for Go using the
|
|
[`xxhash`](http://www.xxhash.com) algorithm,
|
|
[open addressing](https://en.wikipedia.org/wiki/Hash_table#Open_addressing), and
|
|
[robin hood hashing](https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing).
|
|
|
|
This is an alternative to the standard [Go map](https://golang.org/ref/spec#Map_types).
|
|
|
|
# Getting Started
|
|
|
|
## Installing
|
|
|
|
To start using `rhh`, install Go and run `go get`:
|
|
|
|
```sh
|
|
$ go get -u github.com/tidwall/rhh
|
|
```
|
|
|
|
This will retrieve the library.
|
|
|
|
## Usage
|
|
|
|
The `Map` type works similar to a standard Go map, and includes four methods:
|
|
`Set`, `Get`, `Delete`, `Len`.
|
|
|
|
```go
|
|
var m rhh.Map
|
|
m.Set("Hello", "Dolly!")
|
|
val, _ := m.Get("Hello")
|
|
fmt.Printf("%v\n", val)
|
|
val, _ = m.Delete("Hello")
|
|
fmt.Printf("%v\n", val)
|
|
val, _ = m.Get("Hello")
|
|
fmt.Printf("%v\n", val)
|
|
|
|
// Output:
|
|
// Dolly!
|
|
// Dolly!
|
|
// <nil>
|
|
```
|
|
|
|
## Contact
|
|
|
|
Josh Baker [@tidwall](http://twitter.com/tidwall)
|
|
|
|
## License
|
|
|
|
`rhh` source code is available under the MIT [License](/LICENSE).
|