{"id":15926208,"url":"https://github.com/jmank88/nuts","last_synced_at":"2025-03-24T14:32:38.348Z","repository":{"id":57479968,"uuid":"86607147","full_name":"jmank88/nuts","owner":"jmank88","description":"A collections of BoltDB utilities","archived":false,"fork":false,"pushed_at":"2023-02-25T04:15:43.000Z","size":21,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-19T03:57:00.577Z","etag":null,"topics":["boltdb","go","golang","router"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/jmank88.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}},"created_at":"2017-03-29T16:50:48.000Z","updated_at":"2019-10-27T14:17:05.000Z","dependencies_parsed_at":"2024-06-18T22:46:56.579Z","dependency_job_id":"48246e72-2bce-4627-857e-cb302d9a71a3","html_url":"https://github.com/jmank88/nuts","commit_stats":{"total_commits":19,"total_committers":1,"mean_commits":19.0,"dds":0.0,"last_synced_commit":"951bc1928facd0651e9e7d54edd4ec8f150d9b87"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmank88%2Fnuts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmank88%2Fnuts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmank88%2Fnuts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jmank88%2Fnuts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jmank88","download_url":"https://codeload.github.com/jmank88/nuts/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245289765,"owners_count":20591128,"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":["boltdb","go","golang","router"],"created_at":"2024-10-06T22:22:15.070Z","updated_at":"2025-03-24T14:32:38.035Z","avatar_url":"https://github.com/jmank88.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nuts - BoltDB Utilities\n\n[![GoDoc](https://godoc.org/github.com/jmank88/nuts?status.svg)](https://godoc.org/github.com/jmank88/nuts) [![Go Report Card](https://goreportcard.com/badge/github.com/jmank88/nuts)](https://goreportcard.com/report/github.com/jmank88/nuts) [![Coverage Status](https://coveralls.io/repos/github/jmank88/nuts/badge.svg?branch=master)](https://coveralls.io/github/jmank88/nuts?branch=master)\n\nA collection of [BoltDB](https://github.com/boltdb/bolt) utilities.\n\n## Path Prefix Scans\n\nThe prefix scanning functions `SeekPathConflict` and `SeekPathMatch` facilitate maintenance and access to buckets of \npaths supporting *variable elements* with *exclusive matches*.  Paths are `/` delimited, must begin with a `/`, and \nelements beginning with `:` or `*` are variable.\n\nExamples:\n\n```\n/\n/blogs/\n/blogs/:blog_id\n```\n\n### Variable Elements\n\nPath elements beginning with a `:` match any single element.  Path elements beginning with `*` match any remaining \nelements, and therefore must be last.\n\nExamples: \n\n```\nPath:  /blogs/:blog_id\nMatch: /blogs/someblog\n```\n\n```\nPath:  /blogs/:blog_id/comments/:comment_id/*suffix\nMatch: /blogs/42/comments/100/edit\n```\n\n### Exclusive Matches\n\nUsing `SeekPathConflict` before putting new paths to ensure the bucket remains conflict-free guarantees that `SeekPathMatch` \nwill never match more than one path. \n\nExamples:\n\n```\nConflicts: `/blogs/:blog_id`, `/blogs/golang`\nMatch:     `/blogs/golang`\n```\n\n```\nConflicts: `/blogs/*`, `/blogs/:blog_id/comments`\nMatch:     `/blogs/42/comments`\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmank88%2Fnuts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjmank88%2Fnuts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjmank88%2Fnuts/lists"}