Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@alwatr/nitrobase-user-management

Alwatr367AGPL-3.0-only7.5.4TypeScript support: included

null

user, user-management, database, storage, json, nosql, no-sql, data, data-storage, file, typescript, esm, alwatr

readme

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.

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

7.5.4 (2025-01-12)

Dependencies update

  • deps-dev: bump the dependencies group across 1 directory with 11 updates (fdd30a6) by @dependabot[bot]

7.5.0 (2024-11-09)

Features

  • add user-management package (dd0037c) by @mohammadhonarvar
  • user-manaement: add the initial sturcture (2897b2c) by @mohammadhonarvar

Bug Fixes

  • user-management: complete codes & types (838bfd2) by @mohammadhonarvar
  • user-management: review's feedback (77b2796) by @mohammadhonarvar
  • user-management: update directory & homepage (32f54f6) by @mohammadhonarvar
  • user-management: update version & name (1db77da) by @mohammadhonarvar

Code Refactoring

  • user-management: remove commented-out code and clean up interface (f32ac45) by @AliMD