{"id":23160933,"url":"https://github.com/sectly/suchdb","last_synced_at":"2026-03-09T18:39:51.001Z","repository":{"id":144668469,"uuid":"569624580","full_name":"Sectly/suchdb","owner":"Sectly","description":"SuchDB: An simple, dependency free, require \u0026 go node.js and browser database","archived":false,"fork":false,"pushed_at":"2023-12-10T13:36:33.000Z","size":120,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-01T20:48:32.759Z","etag":null,"topics":["browser","data","database","db","json","node","node-js","nodejs","npm","npm-package"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sectly.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}},"created_at":"2022-11-23T08:54:24.000Z","updated_at":"2023-10-02T09:21:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"f7e2a244-1887-464e-9ede-3b3289795eff","html_url":"https://github.com/Sectly/suchdb","commit_stats":{"total_commits":5,"total_committers":2,"mean_commits":2.5,"dds":0.4,"last_synced_commit":"ac5642d6c8f356637dab9aba933826a58a2c169b"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sectly%2Fsuchdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sectly%2Fsuchdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sectly%2Fsuchdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sectly%2Fsuchdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sectly","download_url":"https://codeload.github.com/Sectly/suchdb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230193108,"owners_count":18187963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["browser","data","database","db","json","node","node-js","nodejs","npm","npm-package"],"created_at":"2024-12-17T23:12:48.102Z","updated_at":"2026-03-09T18:39:45.962Z","avatar_url":"https://github.com/Sectly.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SuchDB: An simple, dependency free, require \u0026 go node.js and browser database\n\n#### Install: `npm i @sectly-studios/suchdb` | (https://www.npmjs.com/package/@sectly-studios/suchdb)\n\n## Quick Start:\n\n```js\nlet SuchDB = require(\"@sectly-studios/suchdb\");\n\nlet database = new SuchDB.SuchDB({}); // Make an new database instance\n\ndatabase.set(\"foo\", \"bar\") // Lets add some data\n\ndatabase.get(\"foo\") // Lets grab the data, It should return: bar\n\ndatabase.set(\"foo\", { bar: [1, 2, 3, 4], baz: { name: \"SuchDB\" } }) // SuchDB Supports: Strings, Numbers, Objects And Arrays As Values\n\ndatabase.get(\"foo\") // { bar: [1, 2, 3, 4], baz: { name: \"SuchDB\" } })\n\ndatabase.get(\"foo\").bar // [1, 2, 3, 4]\n\ndatabase.get(\"foo\").bar[0] // 1\n\ndatabase.get(\"foo\").baz // { name: \"SuchDB\" }\n\ndatabase.get(\"foo\").baz[\"name\"] // SuchDB\n```\n\n## Docs:\n\n### Table of Contents\n\n*   [exports][1]\n*   [set][2]\n    *   [Parameters][3]\n*   [get][4]\n    *   [Parameters][5]\n*   [remove][6]\n    *   [Parameters][7]\n*   [clear][8]\n*   [keys][9]\n*   [values][10]\n*   [entries][11]\n*   [forEach][12]\n    *   [Parameters][13]\n*   [size][14]\n*   [isEmpty][15]\n*   [has][16]\n    *   [Parameters][17]\n*   [lookup][18]\n    *   [Parameters][19]\n*   [sort][20]\n    *   [Parameters][21]\n*   [save][22]\n*   [load][23]\n*   [raw][24]\n*   [Boot][25]\n    *   [Parameters][26]\n*   [Find][34]\n    *   [Parameters][35]\n*   [FindMultiple][36]\n    *   [Parameters][37]\n\n## exports\n\nBrowser:\n\nLoad in file with:\n```html\n\u003cscript src=\"path/to/suchdb\"\u003e\u003c/script\u003e\n```\n\n```js\nlet database = SuchDB.SuchDB();\n```\n\nNode.js:\n\n```js\nlet SuchDB = require(\"@sectly-studios/suchdb\");\n\nlet database = new SuchDB.SuchDB();\n```\n\n### Options/Config:\n\n```js\nlet SuchDB = require(\"@sectly-studios/suchdb\").SuchDB({\n   master: \"data\",\n   autosave: true,\n   autoload: false,\n   encrypt: {\n     enabled: true,\n     key: \"SuchDB_Key\",\n   },\n   autobackup: true,\n   logging: true,\n   custom_logging : function(message) {\n    // Some code to log to something like logtail or sentry.\n   }\n});\n```\n\n## set\n\nSet/Add Data To The Database\n\n### Parameters\n\n*   `key` **[string][30]**\u0026#x20;\n*   `value` **any**\u0026#x20;\n\n```js\ndatabase.get(key, value)\n```\n\n## get\n\nGet/Grab Data From The Database\n\n### Parameters\n\n*   `key` **[string][30]**\u0026#x20;\n\n```js\ndatabase.get(key) // Returns data\n```\n\n## remove\n\nRemove/Delete Data From The Database\n\n### Parameters\n\n*   `key` **[string][30]**\u0026#x20;\n\n```js\ndatabase.remove(key)\n```\n\n## clear\n\nClear/Delete All Data In The Database\n\n```js\ndatabase.clear()\n```\n\n## keys\n\nGet Database Keys\n\n```js\ndatabase.keys() // Returns keys\n```\n\n## values\n\nGet Database Values\n\n```js\ndatabase.values() // Returns values\n```\n\n## entries\n\nGet Database Entries\n\n```js\ndatabase.entries() // Returns object\n```\n\n## forEach\n\nLoop Through All Data In The Database\n\n### Parameters\n\n*   `callback` **[function][31]** (key, value)\n\n```js\ndatabase.forEach(function(key, value) {\n    // Retuns key and value\n})\n```\n\n## size\n\nGet Database Size\n\n```js\ndatabase.size() // Returns number\n```\n\n## isEmpty\n\nCheck If Database Is Empty\n\n```js\ndatabase.isEmpty() // Returns boolean\n```\n\n## has\n\nCheck If Database Has Data\n\n### Parameters\n\n*   `key` \u0026#x20;\n\n```js\ndatabase.has(key) // Returns boolean\n```\n\n## lookup\n\nLookup Data In The Database\n\n### Parameters\n\n*   `value` **any**\u0026#x20;\n\n```js\ndatabase.lookup(value) // Returns data\n```\n\n## sort\n\nSort the database\n\n### Parameters\n\n*   `key` **[string][30]**\u0026#x20;\n*   `reverse` **[boolean][32]**\u0026#x20;\n\n```js\ndatabase.sort(key, reverse)\n```\n\n## port\n\nPort Json To The Database\n\n### Parameters\n\n*   `json` **any**\u0026#x20;\n*   `overwrite` **[boolean][32]**\u0026#x20;\n\n```js\ndatabase.port(json, overwrite)\n```\n\n## save\n\nSave Database To:\n\n\u003e localStorage\n\u003e node-fs\n\n```js\ndatabase.save()\n```\n\n## load\n\nLoad Database From:\n\n\u003e localStorage\n\u003e node-fs\n\n### Parameters\n*   `overwrite` **[boolean][32]**\u0026#x20;\n\n```js\nlet overwrite = false;\n\ndatabase.load(overwrite)\n```\n\n## save\n\nSave Database Backup To:\n\n\u003e localStorage\n\u003e node-fs\n\n```js\ndatabase.saveBackup()\n```\n\n## load\n\nLoad Database Backup From:\n\n\u003e localStorage\n\u003e node-fs\n\n### Parameters\n*   `overwrite` **[boolean][32]**\u0026#x20;\n\n```js\nlet overwrite = false;\n\ndatabase.loadBackup(overwrite)\n```\n\n## raw\n\nGet Raw Database Data\n\n```js\ndatabase.raw() // Returns object\n```\n\n## find\n\nFind entry by query\n```js\ndatabase.find({name:\"something\",value:\"something\"}) // Returns entry\n```\n\n### Parameters\n*   `query` **[object][33]**\n    * `name` **[string][30]**\n    * `value` **[string][30]**\n\n## findMultiple\n\nFind one or more entries by query\n```js\ndatabase.findMultiple({name:\"something\",value:\"something\"}) //Returns an array of entries\n```\n\n### Paramters\n*   `query` **[object][33]**\n    * `name` **[string][30]**\n    * `value` **[string][30]**\n\n## Boot\n\nSuchDB\n\n```js\nvar options = {\n   master: \"data\",\n   autosave: true,\n   autoload: false,\n   encrypt: {\n     enabled: true,\n     key: \"SuchDB_Key\",\n   },\n   autobackup: true,\n};\n\nlet database = new SuchDB.SuchDB(options);\n\nlet SuchDB = require(\"@sectly-studios/suchdb\");\n```\n\n### Parameters\n\n*   `options` **[Object][33]**\u0026#x20;\n*\n\n```js \nvar options = {\n   master: \"data\",\n   autosave: true,\n   autoload: false,\n   encrypt: {\n     enabled: true,\n     key: \"SuchDB_Key\",\n   },\n   autobackup: true,\n};\n```\n\n[1]: #exports\n\n[2]: #set\n\n[3]: #parameters\n\n[4]: #get\n\n[5]: #parameters-1\n\n[6]: #remove\n\n[7]: #parameters-2\n\n[8]: #clear\n\n[9]: #keys\n\n[10]: #values\n\n[11]: #entries\n\n[12]: #foreach\n\n[13]: #parameters-3\n\n[14]: #size\n\n[15]: #isempty\n\n[16]: #has\n\n[17]: #parameters-4\n\n[18]: #lookup\n\n[19]: #parameters-5\n\n[20]: #sort\n\n[21]: #parameters-6\n\n[22]: #save\n\n[23]: #load\n\n[24]: #raw\n\n[25]: #boot\n\n[26]: #parameters-7\n\n[27]: mailto:Sectly@sectly.online\n\n[28]: https://www.mozilla.org/en-US/MPL/2.0/\n\n[29]: https://www.mozilla.org/en-US/MPL/2.0/FAQ\n\n[30]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String\n\n[31]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function\n\n[32]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean\n\n[33]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\n\n[34]: #find\n\n[35]: #parameters-10\n\n[36]: #findMultiple\n\n[37]: #parameter-11","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsectly%2Fsuchdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsectly%2Fsuchdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsectly%2Fsuchdb/lists"}