Skip to content

Latest commit

 

History

History
89 lines (60 loc) · 2.57 KB

README.md

File metadata and controls

89 lines (60 loc) · 2.57 KB

Nitrobase

Extremely Fast and Compact JSON-Based In-Memory Database with Nginx Integration

Nitrobase is a blazingly fast, lightweight database built on JSON. It stores data entirely in memory for lightning-quick access, while also providing a JSON file backup for persistence. You can easily serve your data over the web using our high-performance accelerated Nginx server.

Key Features

  • In-Memory Performance: All data is stored in RAM, ensuring extremely fast reads and writes.
  • JSON Simplicity: Data is stored and managed in a straightforward JSON format.
  • File Backup: Automatic JSON file backup ensures data persistence.
  • Nginx Integration: Seamlessly serve your data over the web using accelerated Nginx.
  • Compact Storage: Efficient storage format minimizes disk space usage.

Installation

npm install @alwatr/nitrobase

Getting Started

Create a Collection

import { AlwatrNitrobase, Region } from '@alwatr/nitrobase';

const alwatrStore = new AlwatrNitrobase({
  rootPath: './db',
  defaultChangeDebounce: 2_000, 
});

const postsCollectionId = {
  name: 'post',
  region: Region.PerUser,
  ownerId: 'user_123',
  schemaVer: 2,
};

alwatrStore.newCollection(postsCollectionId);

const postsCollection = await alwatrStore.openCollection(postsCollectionId);

postsCollection.addItem('post1', {
  title: 'My First Post',
  content: 'This is the content of my first post.'
});

Create a Document

import { AlwatrNitrobase, Region } from '@alwatr/nitrobase';

const alwatrStore = new AlwatrNitrobase({
  rootPath: './db',
  defaultChangeDebounce: 2_000, 
});

const docId = {
  name: 'posts/my-first-post',
  region: Region.Authenticated,
};

alwatrStore.newDocument(docId, {
  title: 'My First Post',
  content: 'This is the content of my first post.'
});

const myPost = await alwatrStore.openDocument(docId);

Demo Code

Explore the provided demo code (collection.mjs, document.mjs, benchmark.mjs) to see Alwatr Nitrobase in action and gain a deeper understanding of its capabilities.

Sponsors

The following companies, organizations, and individuals support Nitrobase ongoing maintenance and development. Become a Sponsor to get your logo on our README and website.

Exir Studio

Contributing

Contributions are welcome! Please read our contribution guidelines before submitting a pull request.

License

This project is licensed under the AGPL-3.0 License.