https://github.com/shellkah/averse
Cache server using Goutte project. Can be used as a standalone server or deployed as a container.
https://github.com/shellkah/averse
cache concurrency kubernetes server
Last synced: about 1 month ago
JSON representation
Cache server using Goutte project. Can be used as a standalone server or deployed as a container.
- Host: GitHub
- URL: https://github.com/shellkah/averse
- Owner: shellkah
- License: mit
- Created: 2025-02-16T16:04:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-16T16:40:29.000Z (over 1 year ago)
- Last Synced: 2025-02-16T17:36:58.072Z (over 1 year ago)
- Topics: cache, concurrency, kubernetes, server
- Language: Go
- Homepage:
- Size: 16.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Averse Cache Server
Provide a gRCP interface for the [Goutte](https://github.com/shellkah/goutte) cache. Can be used as a standalone server or deployed as a container.
## Features
- **High Concurrency Support**: Safe for concurrent access under heavy loads.
- **LRU Eviction Policy**: Automatically removes the least recently used entries when the cache exceeds its capacity.
- **Optional TTL**: Automatically removes expired items with precision using a min-heap (priority queue) to track expiration times.
- **Fast Lookups**: Uses a hash map for O(1) average-time complexity for queries.
- **Configurable**: Easily configure the server via a config file or environment variables.
- **gRCP API**: Provides basic operations such as `Get`, `Set`, and `Delete`.
## Incoming
- **Go Client library**: gRCP wrapper for python applications [here](https://github.com/shellkah/averse-python-client).
- **Python Client library**: gRCP wrapper for Go applications [here](https://github.com/shellkah/averse-go-client).
- **Kubernetes manifest**: Simplifies deployment in a Kubernetes cluster.
- **Metrics**: Tracks cache usage and exposes it for monitoring purposes.
- **Package**: Build and publish docker image on GitHub.
## Configuration
- *CACHE_CAPACITY*
- *SERVER_HOST*
- *SERVER_PORT*
- *LOG_LEVEL*
## Installation
To build and run the server from source, execute:
```bash
go mod download
go build -o ./averse cmd/server/server.go
./averse
```
## Contributing
Contributions are welcome! Please open issues or submit pull requests if you have any ideas, bug fixes, or enhancements.
## License
This project is licensed under the MIT License. See the LICENSE file for details.