Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/r3tr056/calod

CALOD: Because even the fastest cache can't outrun a bad algorithm. 😉
https://github.com/r3tr056/calod

cache cnpc fast rust storage

Last synced: 3 days ago
JSON representation

CALOD: Because even the fastest cache can't outrun a bad algorithm. 😉

Awesome Lists containing this project

README

        

# CALOD (Cache-a-lot-o-data)

![CALOD Logo](https://raw.githubusercontent.com/r3tr056/calod/refs/heads/dev/.github/images/logo.jpeg)

**CALOD** is an ultra-fast caching solution designed to handle a lot of data
with ultra-low latency network calls. With its predictive cache invalidation,
CALOD ensures that your applications can retrieve data quickly and efficiently,
enhancing performance and user experience.

## Features

- **Ultra-Low Latency**: Experience minimal delays in data retrieval, making
your applications faster and more responsive.
- **Fast Caching**: Store and access data rapidly to improve the overall
efficiency of your applications.
- **Predictive Cache Invalidation**: Intelligently manage cache entries to
ensure your data is always fresh and relevant.

## Getting Started

### Prerequisites

- **C Compiler**: Ensure you have a C compiler like `gcc` installed on your
machine.
- **Make**: Make sure you have `make` installed for building the project.

### Installation

1. **Clone the repository:**

```bash
git clone https://github.com/r3tr056/CALOD.git
cd CALOD
```

2. **Build CALOD:**

```bash
make
```

3. **Configure CALOD**: Create a configuration file (e.g., `calod-config.json`)
with your desired settings. Below is a sample configuration:

```json
{
"port": 8995,
"maxSize": 1000,
"predictiveInvalidation": true,
"ttl": 3600
}
```

4. **Start CALOD server:**

```bash
./calod
```

By default, CALOD runs on port **8995**. You can change the port in the
configuration file.

5. **Access the CALOD API**: You can interact with CALOD via its REST API. By
default, it runs on `http://localhost:8995`.

## Usage

### Basic Caching Example

You can interact with CALOD using HTTP requests. Below is an example using
`curl`:

- **Set a cache item:**

```bash
curl -X POST http://localhost:8995/set \
-H "Content-Type: application/json" \
-d '{"key": "key1", "value": "value1", "ttl": 600}'
```

- **Get a cache item:**

```bash
curl -X GET http://localhost:8995/get/key1
```

- **Invalidate a cache item:**

```bash
curl -X DELETE http://localhost:8995/invalidate/key1
```

### Advanced Configuration

Configure CALOD according to your needs by adjusting options in
`calod-config.json`:

```json
{
"maxSize": 1000, // Maximum number of items in the cache
"predictiveInvalidation": true, // Enable predictive cache invalidation
"ttl": 3600 // Default time-to-live for cache items in seconds
}
```

## Contributing

We welcome contributions! If you'd like to contribute to CALOD, please follow
these steps:

1. Fork the repository.
2. Create your feature branch (`git checkout -b feature/AmazingFeature`).
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`).
4. Push to the branch (`git push origin feature/AmazingFeature`).
5. Open a pull request.

## License

Distributed under the MIT License. See `LICENSE` for more information.

## Acknowledgments

- Inspired by the caching solutions that make our lives easier.
- Special thanks to all contributors and open-source communities!

---

**CALOD**: Because You Can Never Have Too Much Data!