{"id":43081213,"url":"https://github.com/opdev1004/totjs","last_synced_at":"2026-01-31T14:35:22.944Z","repository":{"id":70883038,"uuid":"591416836","full_name":"opdev1004/totjs","owner":"opdev1004","description":"Not totally new but a file format for managing human readable data in a file. JS version.","archived":false,"fork":false,"pushed_at":"2024-11-21T19:48:33.000Z","size":145,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-21T20:31:24.738Z","etag":null,"topics":["data","data-storage","data-store","database","database-management","hacktoberfest","hactoberfest-accepted","nodejs"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/totjs","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opdev1004.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"opdev1004"}},"created_at":"2023-01-20T17:51:31.000Z","updated_at":"2024-11-21T19:48:37.000Z","dependencies_parsed_at":"2024-11-21T20:36:14.204Z","dependency_job_id":null,"html_url":"https://github.com/opdev1004/totjs","commit_stats":{"total_commits":12,"total_committers":1,"mean_commits":12.0,"dds":0.0,"last_synced_commit":"a52e648e90b2ea6b3b6132ac5fc95e8755dfa337"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/opdev1004/totjs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opdev1004%2Ftotjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opdev1004%2Ftotjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opdev1004%2Ftotjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opdev1004%2Ftotjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opdev1004","download_url":"https://codeload.github.com/opdev1004/totjs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opdev1004%2Ftotjs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28945823,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T14:26:55.697Z","status":"ssl_error","status_checked_at":"2026-01-31T14:26:52.545Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["data","data-storage","data-store","database","database-management","hacktoberfest","hactoberfest-accepted","nodejs"],"created_at":"2026-01-31T14:35:22.882Z","updated_at":"2026-01-31T14:35:22.938Z","avatar_url":"https://github.com/opdev1004.png","language":"JavaScript","funding_links":["https://github.com/sponsors/opdev1004","https://ko-fi.com/opdev1004"],"categories":[],"sub_categories":[],"readme":"# 🥇 Tot.js\n\nTot is a database file format for managing string data in a file. I would like to say markup-like database without indexing. It is using stream and position to efficiently track where the data is. And it is designed to handle massive data. But developer has full control over limitting the size of data in one tag. Eg. 65536 bytes in one tag. Tot is for replacing some jobs that database, JSON and XML do.\n\n## 👨‍🏫 Notice\n\n### 🎉 Release version 2.0.0\n\nEverything is rewritten to the newest algorithm without bug. The algorithm is up to date with the nuget C# Tot CS.\n\nAny function starts with q, they are going to be queued. But you can only use them with Tot instance like `const tot = new Tot()`. Make it global variable and make your IO operation to database file safe. Static version is provided for building own system.\n\nFor migration, sadly this is just totally different from old version. You can have a look at test code and try your best.\n\n### 📢 About how you handle data writes\n\nSome cases Tot can cause lots of writing. It is sill better than writing whole file every time. I recommend avoid using HardRemove() or HardUpdate(). They only exist for small files. It is always better when we modify small data with Update() and Remove(). And use Clean() like once a day, a week or a month.\n\n## ▶️ Install\n\n```\nnpm i totjs\n```\n\n## 🔄 Testing\n\n```\nnpm run test\n```\n\nWe are using jest. Please feel free to add more tests.\n\n## 📖 Example and any other documents\n\nPlease see /documents and /test folder.\n\n## 💪 Support Tot\n\n### 👼 Become a Sponsor\n\n- [Ko-fi](https://ko-fi.com/opdev1004)\n- [Github sponsor page](https://github.com/sponsors/opdev1004)\n\n## 👨‍💻 Author\n\n[Victor Chanil Park](https://github.com/opdev1004)\n\n## 💯 License\n\nMIT, See [LICENSE](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopdev1004%2Ftotjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopdev1004%2Ftotjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopdev1004%2Ftotjs/lists"}