[](https://github.com/thrasher-corp/gocryptotrader/actions/workflows/tests.yml)
[](https://github.com/thrasher-corp/gocryptotrader/blob/master/LICENSE)
[](https://godoc.org/github.com/thrasher-corp/gocryptotrader/portfolio)
[](https://codecov.io/gh/thrasher-corp/gocryptotrader)
[](https://goreportcard.com/report/github.com/thrasher-corp/gocryptotrader)
This cache package is part of the GoCryptoTrader codebase.
## This is still in active development
You can track ideas, planned features and what's in progress on our [GoCryptoTrader Kanban board](https://github.com/orgs/thrasher-corp/projects/3).
Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader Slack](https://join.slack.com/t/gocryptotrader/shared_invite/zt-38z8abs3l-gH8AAOk8XND6DP5NfCiG_g)
## Current Features for cache package
+ Basic LRU cache system with both goroutine safe (via mutex locking) and non-goroutine safe options
## How to use
##### Basic Usage:
```go
package main
import ("github.com/thrasher-corp/gocryptotrader/common/cache")
func main() {
lruCache := cache.New(5)
lruCache.Add("hello", "world")
c := lruCache.Contains("hello")
if !c {
fmt.Println("expected cache to contain \"hello\" key")
}
v := lruCache.Get("hello")
if v == nil {
fmt.Println("expected cache to contain \"hello\" key")
}
fmt.Println(v)
}
```
## Donations
If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:
***bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc***