nahdb
v1.0.0
Published
NaHDB adalah solusi key-value database modern yang ringan, cepat, dan aman dengan dukungan enkripsi AES-256.
Readme
NaHDB
NaHDB adalah solusi key-value database modern yang 💨 ringan, ⚡ cepat, dan 🔒 aman dengan dukungan enkripsi AES-256. Dirancang untuk developer 🐍 Python, 🟦 Node.js, dan 🐘 PHP, NaHDB memudahkan Anda menyimpan data dengan tingkat keamanan tinggi tanpa harus bergantung pada sistem database yang kompleks.
☕ Dukung Pengembangan
Jika Anda merasa terbantu dengan proyek ini, Anda bisa mendukung pengembangan lebih lanjut dengan berdonasi melalui:
💳 Bank Transfer
- 🏦 Bank Jago
No. Rekening:105361441776
Atas Nama: ILMAN HENDRAWAN SAPUTRA
🌐 Cryptocurrency
- 🪙 Litecoin (LTC):
MSdWrJR8eHZEF9PFBKzyiSXcvAsTdrsg3D - ₿ Bitcoin (BTC):
3LDgRxf5sAky8ejJJE7tR4L6uvJzmwoH4k - 💵 Bitcoin Cash (BCH):
bitcoincash:qrrqattarsej5m3v05rtgfulcqqlxy840yls0rh56w
📦 Instalasi
Salin file NaHDB.js ke dalam proyek Anda. atau
npm install nahdb🚀 Contoh Kode Penggunaan
Inisialisasi
tambahkan "type": "module" kedalam package.json
{
"name": "nahdb",
"version": "1.0.0",
"type": "module",
"description": "NaHDB adalah solusi key-value database modern yang ringan, cepat, dan aman dengan dukungan enkripsi AES-256.",
"main": "app.js",
"scripts": {
"test": "node app.js"
},
"author": "Ilman Hendrawan Saputra",
"license": "ISC"
}import { NaHDB } from './NaHDB.js';
const db = new NaHDB('databasePath', Buffer.from('key', 'utf-8'));
await db.init();Login
Default password root adalah '' dan mengembalikan boolean.
(async () => {
await db.login('root', '');
})()Create Table
(async () => {
// Create Table
await db.createTable("table",{"nameColom" : {"type": "str", "default": ""}});
// Get List Table
let listTable = db.listTable();
console.log(listTable);
})()Update Table
(async () => {
// Update Table
await db.updateTable("table",{"nameColom" : {"type": "str", "default": ""},"nameColom2" : {"type": "str", "default": ""}});
// Get Schema Table
let schemaTable = db.getSchema("table");
console.log(schemaTable);
})()Delete Table
(async () => {
// Delete Table
await db.deleteTable("table");
})()Add Data
(async () => {
// Add Data
await db.create("table", {"nameColom":"value"});
})()Update Data
(async () => {
// Update Data
await db.update("table", {"nameColom":"value"}, {"nameColom":"valueUpdate"});
})()Delete Data
(async () => {
// Delete Data
db.delete("table", {"nameColom":"valueUpdate"});
})()Join Table
(async () => {
// Create Table Users
await db.createTable("users", {
"user_id": {"type": "int", "default": 0},
"name": {"type": "str", "default": ""},
"email": {"type": "str", "default": ""}
})
// Add Data Users
await db.create("users", {"user_id": 1, "name": "Alice", "email": "[email protected]"})
await db.create("users", {"user_id": 2, "name": "Bob", "email": "[email protected]"})
await db.create("users", {"user_id": 3, "name": "Charlie", "email": "[email protected]"})
// Create Table Orders
await db.createTable("orders", {
"order_id": {"type": "int", "default": 0},
"user_id": {"type": "int", "default": 0},
"order_date": {"type": "str", "default": ""}
})
// Add Data Orders
await db.create("orders", {"order_id": 101, "user_id": 1, "order_date": "2025-07-08"})
await db.create("orders", {"order_id": 102, "user_id": 2, "order_date": "2025-07-09"})
await db.create("orders", {"order_id": 103, "user_id": 1, "order_date": "2025-07-10"})
// Create Table Products
await db.createTable("products", {
"product_id": {"type": "int", "default": 0},
"order_id": {"type": "int", "default": 0},
"product_name": {"type": "str", "default": ""},
"price": {"type": "float", "default": 0.0}
})
// Add Data Products
await db.create("products", {"product_id": 1001, "order_id": 101, "product_name": "Laptop", "price": 1200.0})
await db.create("products", {"product_id": 1002, "order_id": 101, "product_name": "Mouse", "price": 25.0})
await db.create("products", {"product_id": 1003, "order_id": 102, "product_name": "Keyboard", "price": 45.0})
await db.create("products", {"product_id": 1004, "order_id": 103, "product_name": "Monitor", "price": 300.0})
// Get Data Join Table Singgle Kolom
data = db.join("orders", "user_id", [{"table": "users", "on": "user_id", "as": "user"}])
console.log(data)
// Get Data Join Table Multiple Colomn
data = db.joinField([
{ "table": "users"},
{"table": "orders","on": "user_id","where": {"table": "users", "on": "user_id"},"as": "orders"},
{"table": "products","on": "order_id","where": {"table": "orders", "on": "order_id"},"as": "products"}
])
console.log(data)
})()Flush Table
(async () => {
// Flush Table
await db.flushTable("users")
})()Add User
Permision:
__user__:get_usersget_user_id_by_usernameadd_userupdate_permissionforget_passwordchange_passwordget_username_by_idget_user_by_idupdate_username
table:selectcreateupdatedeleteflushget_schemalistupdate_tabledelete_tablecreate_table
(async () => {
// Add Users
await db.addUser("username","password", "role" , { users: ['select', 'create'] })
// Get Users
let users = db.getUsers()
console.log(users)
})()Forget Password
(async () => {
// Forget Password
await db.forgetPassword("username","passwordNew")
})()Update Username
(async () => {
// Get ID by Username
let idUser = await db.getUserIdByUsername('username')
// Update Username
await db.updateUsername('usernameNew', idUser)
})()Forget Password
(async () => {
// Forget Password
await db.forgetPassword("username","passwordNew")
})()Update Password
(async () => {
// Update Password
await db.changePassword("passwordNew",idUser)
})()Update Permision
(async () => {
// Get Username by ID
let username = db.getUsernameById(idUser)
// Update Permision User
await db.updatePermission(username, {"users":["select","create","update","delete"]})
// Get Users
users = db.getUsers()
console.log(users)
})()Check Login
(async () => {
// Check Login
let isLogin = db.isLogin()
console.log(isLogin)
})()Get User by ID
(async () => {
// Get User by ID
let user = db.getUserById(idUser)
console.log(user)
})()🔒 Fitur
- AES-256 Encryption untuk semua data.
- Cepat & ringan tanpa dependensi eksternal.
- Lintas platform: Python, Node.js, PHP.
- Penyimpanan berbasis file.
📜 Lisensi
MIT License.
☕ Dukung Pengembangan
Jika Anda merasa terbantu dengan proyek ini, Anda bisa mendukung pengembangan lebih lanjut dengan berdonasi melalui:
💳 Bank Transfer
- 🏦 Bank Jago
No. Rekening:105361441776
Atas Nama: ILMAN HENDRAWAN SAPUTRA
🌐 Cryptocurrency
- 🪙 Litecoin (LTC):
MSdWrJR8eHZEF9PFBKzyiSXcvAsTdrsg3D - ₿ Bitcoin (BTC):
3LDgRxf5sAky8ejJJE7tR4L6uvJzmwoH4k - 💵 Bitcoin Cash (BCH):
bitcoincash:qrrqattarsej5m3v05rtgfulcqqlxy840yls0rh56w
🙏 Terima kasih atas dukungan Anda!
