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

croxydb

v0.0.27

Published

a JSON/YAML/LocalStorage/MongoDB/MySQL/Firebase database module with a built-in web panel

Readme

CroxyDB

Downloads Monthly Downloads Weekly Downloads License

Discord: https://discord.gg/uemHZfU6ve

English

CroxyDB is a small key-value database module for Node.js. It supports JSON, YAML, LocalStorage, MongoDB, MySQL, and Firebase adapters. The default adapter is JSON.

Version 0.0.27 changes

  • Added real independent instances with db.createInstance().
  • Added scoped paths with db.path("users").
  • Fixed storing 0, false, and "".
  • Added deep-cloned return values to avoid caller reference mutation bugs.
  • Added sync and async APIs together.
  • Added TTL support with db.set(key, value, { ttl }).
  • Added events: set, delete, expire, and deleteAll.
  • Added crash-safe JSON writes with temp file plus rename.
  • Added optional AES-256-GCM encryption for JSON storage.
  • Added a small migration runner.
  • Update checks are enabled by default and run during operations.
  • Update check warnings include the Discord invite.
  • Updated the Discord invite link.
  • Added MySQL adapter.
  • Added Firebase adapter.
  • Added optional peer dependencies for mysql2 and firebase-admin.
  • Added a dependency-free web panel.
  • Added web panel options for auth, readonly mode, theme, import/export, and delete-all control.
  • Updated TypeScript definitions for new adapters, web panel options, async methods, instances, TTL, and events.
  • Reworked this README into a simpler English and Turkish document.
  • Bumped package version to 0.0.27.

Install

npm install croxydb

Optional adapter packages:

npm install mysql2
npm install firebase-admin
npm install mongoose
npm install yaml

Basic usage

const db = require("croxydb")

db.set("user.name", "Ada")
db.get("user") // { name: "Ada" }

db.set("zero", 0)
db.set("enabled", false)
db.set("empty", "")

db.has("enabled") // true
db.delete("user.name") // true
db.all()

Arrays and numbers

db.add("coins", 10)
db.subtract("coins", 3)

db.push("items", "sword")
db.push("items", "shield")
db.unpush("items", "sword")

Instances

const usersDb = db.createInstance({
  folder: "data",
  file: "users"
})

usersDb.set("1.name", "Ada")

Scoped paths

const users = db.path("users")

users.set("1", { name: "Ada" })
users.get("1")

Async API

await db.setAsync("settings.theme", "dark")
await db.getAsync("settings.theme")

TTL

db.set("session.token", "abc", { ttl: 60_000 })

Events

db.on("set", (key, value) => {
  console.log(key, value)
})

db.on("expire", (key) => {
  console.log("expired", key)
})

Encryption

db.setEncryptionKey("your-secret")
db.set("private.value", "encrypted at rest")

Web panel

The web panel uses only Node.js built-in modules.

db.setWebPanel(true, 2229, {
  title: "CroxyDB Admin",
  password: "secret",
  readonly: false,
  theme: {
    primary: "#30d158",
    background: "#050506",
    surface: "#151516",
    muted: "#8e8e93",
    text: "#f5f5f7"
  },
  actions: {
    import: true,
    export: true,
    deleteAll: false
  }
})

Open:

http://localhost:2229

MySQL adapter

Install mysql2 first.

db.setAdapter("mysql", {
  host: "localhost",
  user: "root",
  password: "password",
  database: "my_database",
  table: "croxydb"
})

await db.setAsync("users.1", { name: "Ada" })
await db.getAsync("users.1")

Connection URL is also supported:

db.setAdapter("mysql", {
  url: "mysql://root:password@localhost:3306/my_database",
  table: "croxydb"
})

Firebase adapter

Install firebase-admin first.

db.setAdapter("firebase", {
  databaseURL: "https://your-project-default-rtdb.firebaseio.com",
  serviceAccount: require("./service-account.json"),
  path: "croxydb"
})

await db.setAsync("users.1", { name: "Ada" })
await db.getAsync("users.1")

MongoDB adapter

Install mongoose first.

db.setAdapter("mongo", {
  url: "mongodb://localhost/database",
  schema: "CroxyDB"
})

await db.set("users.1", { name: "Ada" })
await db.get("users.1")

Options

db.setReadable(true)
db.setNoBlankData(true)
db.setFolder("database")
db.setFile("main")
db.setSeperator(".")
db.setCheckUpdates(false) // disable update checks

Migration

db.registerMigration("rename-key", async (database) => {
  const oldValue = await database.getAsync("old.key")
  if (oldValue !== undefined) {
    await database.setAsync("new.key", oldValue)
    await database.deleteAsync("old.key")
  }
})

await db.migrate()

Turkish

CroxyDB, Node.js icin kucuk bir key-value database moduludur. JSON, YAML, LocalStorage, MongoDB, MySQL ve Firebase adapterlerini destekler. Varsayilan adapter JSON adapteridir.

0.0.27 degisiklikleri

  • db.createInstance() ile gercek bagimsiz instance destegi eklendi.
  • db.path("users") ile scoped path sistemi eklendi.
  • 0, false ve "" kaydetme sorunu duzeltildi.
  • Disaridan referans mutasyonu olmasin diye donen objeler deep clone yapiliyor.
  • Sync ve async API birlikte eklendi.
  • db.set(key, value, { ttl }) ile TTL destegi eklendi.
  • set, delete, expire, deleteAll eventleri eklendi.
  • JSON adapter icin temp dosya ve rename ile crash-safe yazma eklendi.
  • JSON storage icin opsiyonel AES-256-GCM sifreleme eklendi.
  • Basit migration runner eklendi.
  • Update check varsayilan olarak acik gelir ve islemler sirasinda calisir.
  • Update check uyarilarinda Discord davet linki bulunur.
  • Discord davet linki guncellendi.
  • MySQL adapter eklendi.
  • Firebase adapter eklendi.
  • mysql2 ve firebase-admin optional peer dependency olarak eklendi.
  • Dependency kullanmayan web panel eklendi.
  • Web panel icin auth, readonly mode, tema, import/export ve delete-all kontrolu eklendi.
  • TypeScript tanimlari yeni adapterler, web panel, async metotlar, instance, TTL ve eventler icin guncellendi.
  • README daha sade Ingilizce ve Turkce dokuman olarak yenilendi.
  • Paket surumu 0.0.27 yapildi.

Kurulum

npm install croxydb

Opsiyonel adapter paketleri:

npm install mysql2
npm install firebase-admin
npm install mongoose
npm install yaml

Temel kullanim

const db = require("croxydb")

db.set("user.name", "Ada")
db.get("user") // { name: "Ada" }

db.set("zero", 0)
db.set("enabled", false)
db.set("empty", "")

db.has("enabled") // true
db.delete("user.name") // true
db.all()

Web panel

db.setWebPanel(true, 2229, {
  title: "CroxyDB Admin",
  password: "secret",
  readonly: false,
  actions: {
    import: true,
    export: true,
    deleteAll: false
  }
})

Adres:

http://localhost:2229

MySQL

db.setAdapter("mysql", {
  host: "localhost",
  user: "root",
  password: "password",
  database: "my_database",
  table: "croxydb"
})

await db.setAsync("users.1", { name: "Ada" })

Firebase

db.setAdapter("firebase", {
  databaseURL: "https://your-project-default-rtdb.firebaseio.com",
  serviceAccount: require("./service-account.json"),
  path: "croxydb"
})

await db.setAsync("users.1", { name: "Ada" })

Destek

Discord: https://discord.gg/uemHZfU6ve