{"id":29665211,"url":"https://github.com/recabasic/dynabase","last_synced_at":"2026-02-25T17:01:29.552Z","repository":{"id":278198776,"uuid":"934831589","full_name":"recabasic/Dynabase","owner":"recabasic","description":"World's fastest TKV (Table-Key-Value) database with KV support for Node.js. Written in TypeScript with both CommonJS and ESM support.","archived":false,"fork":false,"pushed_at":"2025-02-19T09:22:58.000Z","size":58,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-08-29T20:27:39.847Z","etag":null,"topics":["database","in-memory-database","in-memory-storage","key-value","kv","nosql","table-key-value","tkv"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/dynabase","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/recabasic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-18T13:28:43.000Z","updated_at":"2025-07-18T09:39:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"b99b744c-d3e9-45f3-b753-172b35242899","html_url":"https://github.com/recabasic/Dynabase","commit_stats":null,"previous_names":["holaclient/database","recabasic/dynabase","holaclient/dynabase"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/recabasic/Dynabase","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recabasic%2FDynabase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recabasic%2FDynabase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recabasic%2FDynabase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recabasic%2FDynabase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/recabasic","download_url":"https://codeload.github.com/recabasic/Dynabase/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/recabasic%2FDynabase/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29831700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-25T15:41:19.027Z","status":"ssl_error","status_checked_at":"2026-02-25T15:40:47.150Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","in-memory-database","in-memory-storage","key-value","kv","nosql","table-key-value","tkv"],"created_at":"2025-07-22T13:38:58.948Z","updated_at":"2026-02-25T17:01:29.493Z","avatar_url":"https://github.com/recabasic.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dynabase\r\n\r\nWorld's fastest TKV (Table-Key-Value) database with KV support for Node.js. Written in TypeScript with both CommonJS and ESM support.\r\n\r\n[![Version](https://img.shields.io/npm/v/dynabase.svg)](https://www.npmjs.com/package/dynabase)\r\n[![License](https://img.shields.io/npm/l/dynabase.svg)](https://github.com/HolaClient/dynabase/blob/main/LICENSE)\r\n[![Node Version](https://img.shields.io/node/v/dynabase.svg)](https://nodejs.org)\r\n\r\n## Features\r\n\r\n- 🚀 Ultra-fast in-memory database with file persistence\r\n- 📦 Supports both KV (Key-Value) and TKV (Table-Key-Value) modes\r\n- 💾 Automatic data persistence\r\n- 🔄 Automatic file descriptor management\r\n- 🔒 Safe process termination handling\r\n- 📁 JSON storage with compression option\r\n- 📦 Both ESM and CommonJS support\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install dynabase\r\n```\r\n\r\n## Quick Start\r\n\r\n### Key-Value Mode (KV)\r\n\r\n```javascript\r\nconst db = require('dynabase');\r\n\r\nasync function main() {\r\n    // Initialize in KV mode\r\n    await db.init({\r\n        path: \"./data\",    // Storage directory\r\n        type: \"kv\",        // Database type\r\n        compress: true     // Enable compression\r\n    });\r\n\r\n    // Set values\r\n    db.set('user1', { name: 'John', age: 30 });\r\n\r\n    // Get values\r\n    const user = db.get('user1');\r\n\r\n    // Delete values\r\n    db.delete('user1');\r\n}\r\n```\r\n\r\n### Table-Key-Value Mode (TKV)\r\n\r\n```javascript\r\nconst db = require('dynabase');\r\n\r\nasync function main() {\r\n    // Initialize in TKV mode\r\n    await db.init({\r\n        path: \"./data\",    // Storage directory\r\n        type: \"tkv\",       // Database type\r\n        compress: true     // Enable compression\r\n    });\r\n\r\n    // Set values\r\n    db.set('users', 'user1', { name: 'John', age: 30 });\r\n\r\n    // Get values\r\n    const user = db.get('users', 'user1');\r\n\r\n    // Delete values\r\n    db.delete('users', 'user1');\r\n}\r\n```\r\n\r\n## API Reference\r\n\r\n### Initialization\r\n\r\n```typescript\r\ninterface DatabaseConfig {\r\n    path: string;         // Storage directory path\r\n    type: 'tkv' | 'kv';   // Database type\r\n    compress?: boolean;    // Enable JSON compression\r\n}\r\n\r\nawait db.init(config: DatabaseConfig): Promise\u003cboolean\u003e\r\n```\r\n\r\n### Core Operations\r\n\r\n#### KV Mode\r\n\r\n- `set(key: string, value: any): boolean`\r\n- `get(key: string): any`\r\n- `delete(key: string): boolean`\r\n\r\n#### TKV Mode\r\n\r\n- `set(table: string, key: string, value: any): boolean`\r\n- `get(table: string, key: string): any`\r\n- `delete(table: string, key: string): boolean`\r\n\r\n### Additional Functions\r\n\r\n#### Reset Table/Database\r\n\r\n```javascript\r\n// In KV mode: resets entire database\r\nawait db.reset('default');\r\n\r\n// In TKV mode: resets specific table\r\nawait db.reset('tableName');\r\n```\r\n\r\n#### Manual Flush\r\n\r\n```javascript\r\n// Force write to disk\r\nawait db.flush();\r\n```\r\n\r\n#### Database Info\r\n\r\n```javascript\r\nconst info = db.info();\r\n/*\r\n{\r\n    version: string;\r\n    author: string;\r\n    async: boolean;\r\n    initStatus: boolean;\r\n    type: 'tkv' | 'kv';\r\n    compression: boolean;\r\n    storagePath: string;\r\n    functions: string[];\r\n}\r\n*/\r\n```\r\n\r\n## Storage\r\n\r\n- Data is stored in JSON files in the specified directory\r\n- KV mode uses a single `default.json` file\r\n- TKV mode creates separate JSON files for each table\r\n- Automatic persistence every 5 seconds\r\n- Safe process termination handling\r\n\r\n## Best Practices\r\n\r\n1. **Initialization**\r\n   - Always await `db.init()` before using other functions\r\n   - Choose appropriate mode (KV/TKV) based on your data structure\r\n\r\n2. **Data Types**\r\n   - Values can be any JSON-serializable data\r\n   - Keys must be strings\r\n   - Table names must be strings\r\n\r\n3. **Performance**\r\n   - Use compression for large datasets\r\n   - Group related data in tables (TKV mode)\r\n   - Use KV mode for simple key-value storage\r\n\r\n4. **Error Handling**\r\n   - All async operations return Promises\r\n   - Check return values for operation success\r\n   - Handle potential errors in async operations\r\n\r\n## License\r\n\r\nGNU General Public License v3.0\r\n\r\n## Authors\r\n\r\n[CR072](https://github.com/CR072),  \r\n[HolaClient](https://github.com/HolaClient)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecabasic%2Fdynabase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frecabasic%2Fdynabase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frecabasic%2Fdynabase/lists"}