Skip to content

Creative-Framework/dev-database

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Dev-Database

A Lightning-Fast, Lightweight JSON File-Based Database

Discord server npm version npm downloads

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

About

A Lightning-Fast, Lightweight JSON File-Based Database.

Resources

License

Stars

Watchers

Forks

Packages

No packages published