2.0.0 • Published 11 months ago

kira.db v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

NPM Downloads NPM Version

Table Of Contents

About

Kira.db is a collection of various database types to handle various types of data requirements!

Installation

#npm 
npm i kira.db

#yarn
yarn add kira.db

#edge

npm i https://github.com/Rugved31/kira.db#main

Types

  • KeyValue - A simple database that stores key value pairs
    • Usage: general purpose
  • WideColumn - A database that stores data in a column
    • Usage: good for getting separate columns related to a primary column
  • Remote - A database that stores data in a remote server
    • Usage: good for separating database extensive usage from main project/process

Setups

KeyValue

  const { KeyValue } = require("kira.db") //commonjs
  // or
  import { KeyValue } from "kira.db" //esm

  // Basic Setup
  const db = new KeyValue({
    path: "./path/",
    tables: ["table"],
  });

  db.on("ready", () => {
    console.log("Database is ready!");
  });

  db.connect();

WideColumn

  const { WideColumn, Column } = require("kira.db") //commonjs
  // or
  import { WideColumn, Column } from "kira.db" //esm

  // Basic Setup

  const prime = new Column({
    name: "id",
    primary: true,
    type: "bigint",
    default:0n,
  });
  const xp = new Column({
    name: "xp",
    type: "number",
    primary: false,
    sortOrder: "DESC",
    default : 0,
  });

  const db = new WideColumn({
    path: "./path/",
    encryptOption: {
      securitykey: "a-32-characters-long-string-here",
    },
    tables: [
      {
        name: "main",
        columns: [prime, xp ],
      },
    ],
  });

  db.on("ready", () => {
    console.log("Database is ready!");
  });

  db.connect();

Remote

Setting up the database server

const { Receiver } = require("kira.db"); //commonjs
// or
import { Receiver } from "kira.db"; //esm

const rec = new Receiver({
  logEncrypt: "a-32-characters-long-string-here",
  logPath: "./logPath/",
  wsOptions: {
    port: portNo, // 443 for ssl wss and 80 for ws
    clientTracking: true,
  },
  whitelistedIps: "*",
});

rec.on("connect", () => {
  console.log("connected");
});

rec.connect();

Setting up the client

const { Transmitter, TransmitterFlags } = require("kira.db"); //commonjs
// or
import { Transmitter, TransmitterFlags } from "kira.db"; //esm

const db = new Transmitter({
  path: "websocket path",
  //path : "ws://localhost:80",
  databaseType: "KeyValue or WideColumn",
  dbOptions: {
    path: "./databasePath in remote server/",
    encryptOption: {
      securitykey: "a-32-characters-long-string-here",
      enabled: true,
    },
  },
  name: "username",
  pass: "password",
  flags: TransmitterFlags.READ_WRITE, //READ_WRITE, READ_ONLY, WRITE_ONLY
  tables: ["table"],
});

db.on("ready", () => {
  console.log("ready");
});
db.on("close", (code, reason) => {
  console.log("[TRANSMITTER] => " + code + " " + reason);
});
db.connect();

Links