NaHDB adalah solusi key-value database modern yang ringan, cepat, dan aman dengan dukungan enkripsi AES-256.
Project description
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.cp312-win_amd64.pyd ke dalam proyek Anda. atau
pip install NaHDB
🚀 Contoh Kode Penggunaan
Inisialisasi
Liblary yang di butuhkan:
- pycryptodome
from NaHDB import NaHDB
db = NaHDB('databasePath', b'key')
Login
Default password root adalah '' dan mengembalikan boolean.
db.login("root", "")
Create Table
# Create Table
db.create_table("table",{"nameColom" : {"type": "str", "default": ""}})
# Wait for the process to complete
db.wait_until_done()
# Get List Table
listTable = db.list_table()
print(listTable)
Update Table
# Update Table
db.update_table("table",{"nameColom" : {"type": "str", "default": ""},"nameColom2" : {"type": "str", "default": ""}})
# Wait for the process to complete
db.wait_until_done()
# Get Schema Table
schemaTable = db.get_schema("table")
print(schemaTable)
Delete Table
# Delete Table
db.delete_table("table")
Add Data
# Add Data
db.create("table", {"nameColom":"value"})
Update Data
# Update Data
db.update("table", {"nameColom":"value"}, {"nameColom":"valueUpdate"})
Delete Data
# Remove Data
db.delete("table", {"nameColom":"valueUpdate"})
Join Table
# Create Table Users
db.create_table("users", {
"user_id": {"type": "int", "default": 0},
"name": {"type": "str", "default": ""},
"email": {"type": "str", "default": ""}
})
# Wait for the process to complete
db.wait_until_done()
# Add Data Users
db.create("users", {"user_id": 1, "name": "Alice", "email": "alice@example.com"})
db.create("users", {"user_id": 2, "name": "Bob", "email": "bob@example.com"})
db.create("users", {"user_id": 3, "name": "Charlie", "email": "charlie@example.com"})
# Wait for the process to complete
db.wait_until_done()
# Create Table Orders
db.create_table("orders", {
"order_id": {"type": "int", "default": 0},
"user_id": {"type": "int", "default": 0},
"order_date": {"type": "str", "default": ""}
})
# Wait for the process to complete
db.wait_until_done()
# Add Data Orders
db.create("orders", {"order_id": 101, "user_id": 1, "order_date": "2025-07-08"})
db.create("orders", {"order_id": 102, "user_id": 2, "order_date": "2025-07-09"})
db.create("orders", {"order_id": 103, "user_id": 1, "order_date": "2025-07-10"})
# Wait for the process to complete
db.wait_until_done()
# Create Table Products
db.create_table("products", {
"product_id": {"type": "int", "default": 0},
"order_id": {"type": "int", "default": 0},
"product_name": {"type": "str", "default": ""},
"price": {"type": "float", "default": 0.0}
})
# Wait for the process to complete
db.wait_until_done()
# Add Data Products
db.create("products", {"product_id": 1001, "order_id": 101, "product_name": "Laptop", "price": 1200.0})
db.create("products", {"product_id": 1002, "order_id": 101, "product_name": "Mouse", "price": 25.0})
db.create("products", {"product_id": 1003, "order_id": 102, "product_name": "Keyboard", "price": 45.0})
db.create("products", {"product_id": 1004, "order_id": 103, "product_name": "Monitor", "price": 300.0})
# Wait for the process to complete
db.wait_until_done()
# Get Data Join Table Singgle Kolom
data = db.join("orders", "user_id", [{"table": "users", "on": "user_id", "as": "user"}])
print(data)
# Get Data Join Table Multiple Colomn
data = db.join_field([
{ "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"}
])
print(data)
Flush Table
# Fulsh Table
db.flush_table("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
# Add User
db.add_user("username","password", "role",{ "users": ['select', 'create'] })
# Wait for the process to complete
db.wait_until_done()
# Get Users
users = db.get_users()
print(users)
Forget Password
# Forget Password
db.forget_password("username","passwordNew")
Update Username
# Get ID by Username
idUser = db.get_user_id_by_username("username")
# Update Username
db.update_username("usernameNew",idUser)
# Wait for the process to complete
db.wait_until_done()
Forget Password
# Forget Password
db.forget_password("username","passwordNew")
Update Password
# Update Password
db.change_password("passwordNew",idUser)
# Wait for the process to complete
db.wait_until_done()
Update Permision
# Get Username by ID
username = db.get_username_by_id(idUser)
# Update Permision User
db.update_permission(username, {"users":["select","create","update","delete"]})
# Wait for the process to complete
db.wait_until_done()
# Get Users
users = db.get_users()
print(users)
Check Login
# Check Login
islogin = db.is_login()
print(islogin)
Get User by ID
# Get User by ID
user = db.get_user_by_id(idUser)
print(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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nahdb-0.1.0.tar.gz.
File metadata
- Download URL: nahdb-0.1.0.tar.gz
- Upload date:
- Size: 255.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9af65bf8fbdf3839216db52097d386350719c7cc2344e43aceb4eac996e9dff4
|
|
| MD5 |
6e44d00cfc08b3be7dac23830a95434e
|
|
| BLAKE2b-256 |
47234e3f2ae739a0c45df7665991dbd1d02dd86f6fbbdc74e7bb054f79da4355
|
File details
Details for the file nahdb-0.1.0-py3-none-any.whl.
File metadata
- Download URL: nahdb-0.1.0-py3-none-any.whl
- Upload date:
- Size: 256.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdb3794d220684757a6825096be9ee07af89c9a5f03d9f88f2dc87940fd370a1
|
|
| MD5 |
5caf65c583eaee10d90cacac9548d0ef
|
|
| BLAKE2b-256 |
87e3cf6a260358cfe25f069deb4397acc43063b06c1beb64cc949f0bd3de97e3
|