Aoi.db is a collection of various database types to handle various types of data requirements!
#npm
npm i @akarui/aoi.db
#yarn
yarn add @akarui/aoi.db
- 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
const { KeyValue } = require("@akarui/aoi.db") //commonjs
// or
import { KeyValue } from "@akarui/aoi.db" //esm
// Basic Setup
const db = new KeyValue({
path: "./path/",
tables: ["table"],
});
db.on("ready", () => {
console.log("Database is ready!");
});
db.connect();
Reference: KeyValue
const { WideColumn, Column } = require("@akarui/aoi.db") //commonjs
// or
import { WideColumn, Column } from "@akarui/aoi.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();
Reference: WideColumn
const { Receiver } = require("@akarui/aoi.db"); //commonjs
// or
import { Receiver } from "@akarui/aoi.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();
Reference: Receiver
const { Transmitter, TransmitterFlags } = require("@akarui/aoi.db"); //commonjs
// or
import { Transmitter, TransmitterFlags } from "@akarui/aoi.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();
Reference: Transmitter