{"id":18207461,"url":"https://github.com/agilord/lookup","last_synced_at":"2026-02-16T08:03:33.143Z","repository":{"id":260834252,"uuid":"882484721","full_name":"agilord/lookup","owner":"agilord","description":"Dart package for constant (immutable) data structures for effiecient lookup, indexing and search in memory and on disk.","archived":false,"fork":false,"pushed_at":"2024-11-02T22:41:17.000Z","size":15,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-03T20:46:32.165Z","etag":null,"topics":["dart","data-structures","search"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/lookup","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agilord.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2024-11-02T22:35:13.000Z","updated_at":"2024-11-03T05:20:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"c6126a0d-3d51-4c36-8fb4-f8bf43d61caf","html_url":"https://github.com/agilord/lookup","commit_stats":null,"previous_names":["agilord/lookup"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/agilord/lookup","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilord%2Flookup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilord%2Flookup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilord%2Flookup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilord%2Flookup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agilord","download_url":"https://codeload.github.com/agilord/lookup/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agilord%2Flookup/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279007345,"owners_count":26084282,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["dart","data-structures","search"],"created_at":"2024-11-03T13:02:58.698Z","updated_at":"2025-10-11T13:35:31.191Z","avatar_url":"https://github.com/agilord.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"Constant (read-only / immutable) data structures optimized for effiecient lookup\noperations, indexing and search in memory and on disk.\n\n## Features\n\n**Implemented**:\n\n- (partial) [B+tree](https://en.wikipedia.org/wiki/B%2B_tree) (`bptree/v1`)\n\n**Planned**:\n\n- [key/value hash table](https://en.wikipedia.org/wiki/Hash_table)\n- [trie](https://en.wikipedia.org/wiki/Trie)\n- [BK-tree](https://en.wikipedia.org/wiki/BK-tree)\n- [Levenshtein automaton](https://en.wikipedia.org/wiki/Levenshtein_automaton)\n\n## Goals and conventions\n\nThe goal of this package is to create low-level building blocks and composable\nstructures that could support efficient data lookup and search in read-only\nindex. Keys and values are arbitrary-length bytes without any restriction.\n\nThe formats are using binary encoding that can be read from file and be used\nwithout further processing or (significant) memory allocation. By default\nlittle-endian encoding is used, with an option to specify big-endian when\nthe target architecture is using that.\n\nThe implemented structures are placed in separate libraries that have their\nown version number, in order to allow introducing changes (in a new version)\nwithout breaking existing files. Each structure starts with 3 bytes that\nidentifies it (using the md5 hash of their `\u003cname\u003e/\u003cversion\u003e`).\n\nThe implemented structures have an internal version value that allow some\nfeatures to be unimplemented later, while making it clear for the client\nthat they should be upgraded to read it.\n\nThe block size, content size and offset encodings are dynamic, to support both\nsmall and large data sets, tuned efficiently for the specific use case. The\nbuild process of the binary content should support both below 4 KiB and over\n4 GiB block sizes.\n\n## How to contribute?\n\nPlease open new issues to discuss features, structures and use cases, *before*\nsubmitting any code.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilord%2Flookup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagilord%2Flookup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagilord%2Flookup/lists"}