@akarui/aoi.db
Table Of Contents
About
Aoi.db is a collection of various database types to handle various types of data requirements!
Installation
npm i @akarui/aoi.db
yarn add @akarui/aoi.db
Types
- KeyValue - A simple database that stores key value pairs
- 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("@akarui/aoi.db");
import { KeyValue } from "@akarui/aoi.db";
const db = new KeyValue({
dataConfig: { path: "./database" },
encryptionConfig: {
encriptData: false,
securityKey: "a-32-characters-long-string-here",
},
debug: true,
});
db.on("ready", () => {
console.log("Database is ready!");
});
db.connect();
Reference: KeyValue
WideColumn
const { WideColumn, Column } = require("@akarui/aoi.db");
import { WideColumn, Column } from "@akarui/aoi.db";
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/",
encryptionConfig: {
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
Remote
Setting up the database server
const { Receiver } = require("@akarui/aoi.db");
import { Receiver } from "@akarui/aoi.db";
const rec = new Receiver({
logEncrypt: "a-32-characters-long-string-here",
logPath: "./logPath/",
wsOptions: {
port: portNo,
clientTracking: true,
},
whitelistedIps: "*",
});
rec.on("connect", () => {
console.log("connected");
});
rec.connect();
Reference: Receiver
Setting up the client
const { Transmitter, TransmitterFlags } = require("@akarui/aoi.db");
import { Transmitter, DatabaseEvents } from "@akarui/aoi.db";
cconst db = Transmitter.createConnection({
path: `aoidb://usersatoshi:123456@localhost:8080`,
dbOptions: {
type: "KeyValue",
options: {
dataConfig: {
path: "./database",
},
encryptionConfig: {
securityKey: "a-32-characters-long-string-here"
}
}
}
})
const db = new Transmitter({
dbOptions: {
type: "KeyValue",
options: {
dataConfig: {
path: "database",
},
encryptionConfig: {
securityKey: "a-32-characters-long-string-here"
}
}
},
username: "username",
password: "password",
})
db.on(DatabaseEvents.Connect, () => console.log("Connected"));
db.on(DatabaseEvents.Disconnect, () => console.log("Disconnected"));
db.connect();
Reference: Transmitter
Links