An open API service indexing awesome lists of open source software.

https://github.com/qulia/go-qulia

Go common library
https://github.com/qulia/go-qulia

data-structures golang graph heap set stack tree trie

Last synced: 2 months ago
JSON representation

Go common library

Awesome Lists containing this project

README

          

# go-qulia

![Coverage](https://img.shields.io/badge/Coverage-97.9%25-brightgreen)
[![Go Reference](https://pkg.go.dev/badge/github.com/qulia/go-qulia/v2.svg)](https://pkg.go.dev/github.com/qulia/go-qulia/v2)

Go data structures, and helper libraries.

# Data Structures

- [Graph](lib/graph)
- [Heap](lib/heap/)
- [Queue](lib/queue/)
- [Set](lib/set)
- [Skiplist](lib/skiplist/)
- [Stack](lib/stack/)
- [Tree](lib/tree/)
- [BinaryIndexTree](lib/tree/bit.go)
- [SegmentTree](lib/tree/segment.go)
- [BinarySearchTree](lib/tree/bst.go)
- [Trie](lib/trie)
- [UnionFind](lib/unionfind/)

# Algo

- RateLimiter
- [TokenBucket](algo/ratelimiter/tokenbucket/)
- [LeakyBucket](algo/ratelimiter/leakybucket/)
- [FixedWindowCounter](algo/ratelimiter/fixedwindowcounter/)
- [SlidingWindowLog](algo/ratelimiter/slidingwindowlog/)
- [SlidingWindowCounter](algo/ratelimiter/slidingwindowcounter/)

# Clone
- [Clone](clone/clone.go)

# Middleware

- [RateLimiter](http/server/middleware/ratelimiter)

# Concurrency

- [Unique](concurrency/unique/)

# Data Processing

- Windowing
- [FixedWindow](dataprocessing/window/window.go)
- [SlidingWindow](dataprocessing/window/window.go)

# Messaging

- [Pub/Sub Broker](messaging/broker/)

# Caching

- [LRU Cache](caching/lru_cache.go)

# Mock

- [MockTimeProvider](mock/mock_time/provider.go)

---

---

Contributions are welcome!