{"id":13741133,"url":"https://github.com/ziglibs/zdb","last_synced_at":"2025-04-30T23:30:53.356Z","repository":{"id":104373983,"uuid":"607586928","full_name":"ziglibs/zdb","owner":"ziglibs","description":"Allocator-free document oriented database management. WIP","archived":false,"fork":false,"pushed_at":"2023-03-09T22:08:54.000Z","size":6,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T05:51:16.802Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Zig","has_issues":false,"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/ziglibs.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}},"created_at":"2023-02-28T09:21:39.000Z","updated_at":"2024-12-27T23:47:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"6a74cb96-5bf4-42e8-ba09-1786889ff78a","html_url":"https://github.com/ziglibs/zdb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziglibs%2Fzdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziglibs%2Fzdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziglibs%2Fzdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziglibs%2Fzdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ziglibs","download_url":"https://codeload.github.com/ziglibs/zdb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251799377,"owners_count":21645789,"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":[],"created_at":"2024-08-03T04:00:55.776Z","updated_at":"2025-04-30T23:30:53.062Z","avatar_url":"https://github.com/ziglibs.png","language":"Zig","funding_links":[],"categories":["Libraries"],"sub_categories":[],"readme":"# zdb\r\n\r\nAllocator-free document oriented database management, heavily inspired by [TinyDB](https://github.com/msiemens/tinydb).\r\n\r\n## Abstract\r\n\r\nWarning\r\n|-\r\nThis library is still in development. Please use at your own expense.\r\n\r\nzdb is inspired by TinyDB, meaning this library also utilises JSON files\r\nas its main storage. zdb is also designed and meant to go hand-in-hand with\r\n[zorm](https://github.com/ziglibs/zorm), interoperable with one another.\r\n\r\n## Structure\r\n\r\nThe architecture of this database design has been shrinked for maximising\r\nefficiency and optimisation strategies.\r\n\r\nHere's a mockup example for a lack of better words:\r\n\r\n```md\r\nDatabase {\r\n    Table {\r\n        Item {\r\n            T (type)\r\n            v (T) -\u003e undefined\r\n        }\r\n\r\n        size (u64) -\u003e undefined\r\n        items (array of Item)\r\n\r\n        search(T or expr)\r\n        add(T or expr)\r\n        remove(T or expr)\r\n        clear(?T)\r\n    }\r\n\r\n    tables (array of Table) -\u003e undefined\r\n}\r\n\r\nQuery {\r\n    where(expr) !Item\r\n    exists(T) !bool\r\n}\r\n```\r\n\r\n### Caviats\r\n\r\nSimplicity and ease-of-use are the primary goals of zdb. You may not\r\nwant to use this if:\r\n\r\n- You need the database cached during realtime\r\n- Are seeking to use your own alloc for memory allocation\r\n- Needing to hook in-between transactions with middleware\r\n\r\n## Building\r\n\r\nzdb runs on 0.11.0-dev and higher versions of Zig.\r\n\r\nIt is recommended to install and build from source:\r\n\r\n```bash\r\n$ git clone --recursive https://github.com/ziglibs/zdb\r\n$ cd ./zdb\r\n$ zig build\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziglibs%2Fzdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fziglibs%2Fzdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziglibs%2Fzdb/lists"}