npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@arikajs/cache

v0.10.8

Published

Simple, fast, and driver-based caching system for the ArikaJS framework.

Readme

Arika Cache

@arikajs/cache provides a simple, fast, and driver-based caching system for the ArikaJS framework.

It allows applications to store frequently accessed data in memory, files, or external stores to improve performance and reduce repeated computation or database queries.


✨ Features

  • Unified cache API: Consistent interface across all drivers
  • Multiple cache stores: Support for various storage backends
  • File-based cache (Default): Persistent storage without external dependencies
  • Bulk Operations: Fetch or store multiple items in one network trip
  • Atomic Cache Locks: Distributed locking for concurrency control
  • Cache Tags: Logical grouping of cache keys for selective invalidation
  • TTL (time-to-live) support: Automatic expiration of cached items
  • TypeScript-first design: Strong typing for keys and values

📦 Installation

npm install @arikajs/cache

🚀 Basic Usage

import { Cache } from 'arikajs';

// Store a value for 60 seconds
await Cache.put('users.count', 150, 60);

// Retrieve a value
const count = await Cache.get('users.count');

// Remove an item
await Cache.forget('users.count');

// Clear all cache
await Cache.flush();

🏎️ Drivers

| Driver | Status | Description | | :--- | :--- | :--- | | File | ✅ Default | Persistent local storage (stores in storage/cache/data) | | Memory | ✅ Supported | High-performance ephemeral in-memory storage | | Database | ✅ Supported | Persistent cache using your database (MySQL/PostgreSQL) | | Redis | ✅ Supported | Distributed cache (Standalone, Sentinel, Cluster) |


📂 File Cache (Default)

The file driver is the default cache store. It stores data in your application's file system, typically under storage/cache/data.

Configuration in config/cache.ts:

export default {
  default: process.env.CACHE_STORE || 'file',

  stores: {
    file: {
        driver: 'file',
        path: 'storage/cache/data',
    },
    // ...
  }
}

🛠 Cache Commands

ArikaJS CLI provides several commands to manage your cache:

Clear Cache

Flush the entire application cache (or a specific store):

arika cache:clear
arika cache:clear redis

Setup Database Cache

If you want to use the database driver, you must create the cache table:

arika cache:table
arika migrate

🏎️ Redis Cache Setup

1. Install Redis Package

npm install ioredis

2. Configure Environment

CACHE_STORE=redis
REDIS_HOST=127.0.0.1

🔒 Atomic Cache Locks

Prevent race conditions by using atomic locks:

const lock = Cache.lock('processing-invoice-123', 10);

if (await lock.acquire()) {
  try {
    // Critical section
  } finally {
    await lock.release();
  }
}

📄 License

@arikajs/cache is open-source software licensed under the MIT License.