dev-database

0.0.3-beta • Public • Published

Dev-Database

A Lightning-Fast, Lightweight JSON File-Based Database

Overview

Dev-Database is a high-performance, lightweight npm package that offers a fast and efficient way to perform database operations using JSON files. It's designed for developers who need a quick, easy-to-use solution for storing and retrieving data. Now with enhanced speed and asynchronous operations, it’s perfect for both small-scale projects and lightweight Discord bots.

Features

  • Blazing Fast: Optimized for handling large datasets (e.g., 100,000+ keys) in milliseconds.
  • Easy-to-Use API: Simple methods for CRUD operations.
  • In-Memory Efficiency: Data is processed in memory for ultra-fast reads and writes.
  • Persistent Storage: Periodic and asynchronous writes to a JSON file.
  • Bulk Operations: Quickly set multiple key-value pairs in one call.

Installation

Install Dev-Database via npm:

npm install dev-database  

Getting Started

Create an instance of DevDatabase by providing the path to your JSON file.

Example Usage:

const DevDatabase = require('dev-database');

// Create an instance of DevDatabase
const db = new DevDatabase('database.json');

// Set a key-value pair
db.set('key1', 'value1');
console.log(db.get('key1')); // Output: 'value1'

// Delete a key
db.delete('key1');

// Bulk set key-value pairs
db.bulkSet([
  ['key2', 'value2'],
  ['key3', 'value3']
]);

// Retrieve a value with a default fallback
console.log(db.get('nonexistentKey', 'defaultValue')); // Output: 'defaultValue'

// Clear all data
db.clear();

// Close the database (force save to disk)
db.close();

Methods

set(key, value)

Sets a key-value pair in the database.

db.set('key', 'value');  

get(key, defaultValue = null)

Retrieves the value associated with a key, or returns defaultValue if the key doesn't exist.

const value = db.get('key', 'default');

delete(key)

Deletes a key-value pair from the database.

db.delete('key');

bulkSet(entries)

Sets multiple key-value pairs in a single operation.

db.bulkSet([
  ['key1', 'value1'],
  ['key2', 'value2']
]);

clear()

Clears all key-value pairs in the database.

db.clear();

close()

Forces the database to save all data to disk immediately.

db.close();

Advanced Features

In-Memory Processing

All CRUD operations happen in memory for maximum performance, with asynchronous writes to disk.

Debounced Saving

Changes to the database are saved to the JSON file in batches every 500ms, reducing the overhead of frequent file writes.


Warning!

  • If the JSON file doesn’t exist, Dev-Database will create a new one.
  • Ensure you close the database with close() when shutting down your application to prevent data loss.

Ideal Use Cases

  • Discord Bots: Store server-specific configurations, user preferences, or leveling systems.
  • Small Projects: Perfect for personal or lightweight development projects.
  • Prototyping: Quickly implement a simple database without external dependencies.

Contact / Need Help?

Join my Discord Developers Server:
https://discord.gg/FqceHDU8QP

Package Sidebar

Install

npm i dev-database

Weekly Downloads

3

Version

0.0.3-beta

License

MIT

Unpacked Size

7.29 kB

Total Files

4

Last publish

Collaborators

  • amtixdev