{"id":13411666,"url":"https://github.com/adrianbrad/queue","last_synced_at":"2026-02-09T03:34:15.570Z","repository":{"id":59045872,"uuid":"531485124","full_name":"adrianbrad/queue","owner":"adrianbrad","description":"⏪️ Go package providing multiple queue implementations. Developed in a thread-safe generic way.","archived":false,"fork":false,"pushed_at":"2025-05-13T08:22:41.000Z","size":109,"stargazers_count":289,"open_issues_count":2,"forks_count":15,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-13T08:23:37.133Z","etag":null,"topics":["blocking-queue","circular-queue","generic","go","golang","priority-queue","queue","thread-safe"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/adrianbrad/queue","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/adrianbrad.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":"2022-09-01T11:18:16.000Z","updated_at":"2025-05-13T08:22:45.000Z","dependencies_parsed_at":"2023-02-18T11:05:23.324Z","dependency_job_id":"c9121b7a-0b11-4683-b36b-156e847558bf","html_url":"https://github.com/adrianbrad/queue","commit_stats":{"total_commits":51,"total_committers":1,"mean_commits":51.0,"dds":0.0,"last_synced_commit":"83b2620334e52f668bd5fa9e979ef44d69731213"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/adrianbrad/queue","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianbrad%2Fqueue","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianbrad%2Fqueue/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianbrad%2Fqueue/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianbrad%2Fqueue/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrianbrad","download_url":"https://codeload.github.com/adrianbrad/queue/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrianbrad%2Fqueue/sbom","scorecard":{"id":167731,"data":{"date":"2025-08-11","repo":{"name":"github.com/adrianbrad/queue","commit":"f50cb7a8428c698d9e24c3f32adc99404a5ab54f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":4.7,"checks":[{"name":"Code-Review","score":1,"reason":"Found 2/18 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yaml:25: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/codeql.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yaml:29: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/codeql.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yaml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/codeql.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yaml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/codeql.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/gitleaks.yaml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/gitleaks.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/gitleaks.yaml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/gitleaks.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/grype.yaml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/grype.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/grype.yaml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/grype.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-test.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/lint-test.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-test.yaml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/lint-test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint-test.yaml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/lint-test.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-test.yaml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/lint-test.yaml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/lint-test.yaml:35: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/lint-test.yaml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/lint-test.yaml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/adrianbrad/queue/lint-test.yaml/main?enable=pin","Info:   0 out of  10 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   4 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yaml:21","Info: jobLevel 'contents' permission set to 'read': .github/workflows/grype.yaml:15","Warn: jobLevel 'security-events' permission set to 'write': .github/workflows/grype.yaml:13","Info: jobLevel 'actions' permission set to 'read': .github/workflows/grype.yaml:14","Warn: no topLevel permission defined: .github/workflows/codeql.yaml:1","Info: topLevel 'contents' permission set to 'read': .github/workflows/gitleaks.yaml:5","Warn: no topLevel permission defined: .github/workflows/grype.yaml:1","Warn: no topLevel permission defined: .github/workflows/lint-test.yaml:1"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: GoBuiltInFuzzer integration found: priority_test.go:387"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":8,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 7 commits out of 17 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-16T15:23:29.699Z","repository_id":59045872,"created_at":"2025-08-16T15:23:29.699Z","updated_at":"2025-08-16T15:23:29.699Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29255602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T03:07:45.136Z","status":"ssl_error","status_checked_at":"2026-02-09T03:07:24.123Z","response_time":56,"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":["blocking-queue","circular-queue","generic","go","golang","priority-queue","queue","thread-safe"],"created_at":"2024-07-30T20:01:15.558Z","updated_at":"2026-02-09T03:34:15.548Z","avatar_url":"https://github.com/adrianbrad.png","language":"Go","readme":"# queue\n\n![GitHub release](https://img.shields.io/github/v/tag/adrianbrad/queue)\n[![GitHub go.mod Go version of a Go module](https://img.shields.io/github/go-mod/go-version/adrianbrad/queue)](https://github.com/adrianbrad/queue)\n[![GoDoc reference example](https://img.shields.io/badge/godoc-reference-blue.svg)](https://pkg.go.dev/github.com/adrianbrad/queue)\n[![Mentioned in Awesome Go](https://awesome.re/mentioned-badge.svg)](https://github.com/avelino/awesome-go)\n\n[![CodeFactor](https://www.codefactor.io/repository/github/adrianbrad/queue/badge)](https://www.codefactor.io/repository/github/adrianbrad/queue)\n[![Go Report Card](https://goreportcard.com/badge/github.com/adrianbrad/queue)](https://goreportcard.com/report/github.com/adrianbrad/queue)\n[![codecov](https://codecov.io/gh/adrianbrad/queue/branch/main/graph/badge.svg)](https://codecov.io/gh/adrianbrad/queue)\n\n[![lint-test](https://github.com/adrianbrad/queue/actions/workflows/lint-test.yaml/badge.svg)](https://github.com/adrianbrad/queue/actions?query=workflow%3Alint-test)\n[![grype](https://github.com/adrianbrad/queue/actions/workflows/grype.yaml/badge.svg)](https://github.com/adrianbrad/queue/actions?query=workflow%3Agrype)\n[![codeql](https://github.com/adrianbrad/queue/actions/workflows/codeql.yaml/badge.svg)](https://github.com/adrianbrad/queue/actions?query=workflow%3ACodeQL)\n\n---\n\nThe `queue` package provides thread-safe generic implementations in Go for the following data structures: `BlockingQueue`, `PriorityQueue`, `CircularQueue` and `Linked Queue`.\n\nA queue is a sequence of entities that is open at both ends where the elements are\nadded (enqueued) to the tail (back) of the queue and removed (dequeued) from the head (front) of the queue.\n\nThe implementations are designed to be easy-to-use and provide a consistent API, satisfying the `Queue` interface provided by this package. .\n\nBenchmarks and Example tests can be found in this package. \n\n\u003c!-- TOC --\u003e\n* [queue](#queue)\n  * [Installation](#installation)\n  * [Import](#import)\n  * [Usage](#usage)\n    * [Queue Interface](#queue-interface)\n    * [Blocking Queue](#blocking-queue)\n    * [Priority Queue](#priority-queue)\n    * [Circular Queue](#circular-queue)\n    * [Linked Queue](#linked-queue)\n  * [Benchmarks](#benchmarks-)\n\u003c!-- TOC --\u003e\n\n## Installation\nTo add this package as a dependency to your project, run:\n\n```shell\ngo get -u github.com/adrianbrad/queue\n```\n\n## Import\nTo use this package in your project, you can import it as follows:\n\n```go\nimport \"github.com/adrianbrad/queue\"\n```\n\n## Usage\n\n### Queue Interface\n\n```go\n// Queue is a generic queue interface, defining the methods that all queues must implement.\ntype Queue[T comparable] interface {\n\t// Get retrieves and removes the head of the queue.\n\tGet() (T, error)\n\n\t// Offer inserts the element to the tail of the queue.\n\tOffer(T) error\n\n\t// Reset sets the queue to its initial state.\n\tReset()\n\n\t// Contains returns true if the queue contains the element.\n\tContains(T) bool\n\n\t// Peek retrieves but does not remove the head of the queue.\n\tPeek() (T, error)\n\n\t// Size returns the number of elements in the queue.\n\tSize() int\n\n\t// IsEmpty returns true if the queue is empty.\n\tIsEmpty() bool\n\n\t// Iterator returns a channel that will be filled with the elements\n\tIterator() \u003c-chan T\n\n\t// Clear removes all elements from the queue.\n\tClear() []T\n}\n```\n\n### Blocking Queue\n\nBlocking queue is a FIFO ordered data structure. Both blocking and non-blocking methods are implemented.\nBlocking methods wait for the queue to have available items when dequeuing, and wait for a slot to become available in case the queue is full when enqueuing.\nThe non-blocking methods return an error if an element cannot be added or removed. \nImplemented using sync.Cond from the standard library.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/adrianbrad/queue\"\n)\n\nfunc main() {\n\telems := []int{2, 3}\n\n\tblockingQueue := queue.NewBlocking(elems, queue.WithCapacity(3))\n\n\tcontainsTwo := blockingQueue.Contains(2)\n\tfmt.Println(containsTwo) // true\n\n\tsize := blockingQueue.Size()\n\tfmt.Println(size) // 2\n\n\tempty := blockingQueue.IsEmpty()\n\tfmt.Println(empty) // false\n\n\tif err := blockingQueue.Offer(1); err != nil {\n\t\t// handle err\n\t}\n\n\telem, err := blockingQueue.Get()\n\tif err != nil {\n\t\t// handle err\n\t}\n\n\tfmt.Println(\"elem: \", elem) // elem: 2\n}\n```\n\n### Priority Queue\n\nPriority Queue is a data structure where the order of the elements is given by a comparator function provided at construction. \nImplemented using container/heap standard library package.\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/adrianbrad/queue\"\n)\n\nfunc main() {\n\telems := []int{2, 3, 4}\n\n\tpriorityQueue := queue.NewPriority(\n\t\telems, \n\t\tfunc(elem, otherElem int) bool { return elem \u003c otherElem },\n        )\n\n\tcontainsTwo := priorityQueue.Contains(2)\n\tfmt.Println(containsTwo) // true\n\n\tsize := priorityQueue.Size()\n\tfmt.Println(size) // 3\n\n\tempty := priorityQueue.IsEmpty()\n\tfmt.Println(empty) // false\n\n\tif err := priorityQueue.Offer(1); err != nil {\n\t\t// handle err\n\t}\n\n\telem, err := priorityQueue.Get()\n\tif err != nil {\n\t\t// handle err\n\t}\n\n\tfmt.Printf(\"elem: %d\\n\", elem) // elem: 1\n}\n```\n\n### Circular Queue\n\nCircular Queue is a fixed size FIFO ordered data structure. When the queue is full, adding a new element to the queue overwrites the oldest element.\n\nExample:\nWe have the following queue with a capacity of 3 elements: [1, 2, 3].\nIf the tail of the queue is set to 0, as if we just added the element `3`,\nthe next element to be added to the queue will overwrite the element at index 0.\nSo, if we add the element `4`, the queue will look like this: [4, 2, 3].\nIf the head of the queue is set to 0, as if we never removed an element yet,\nthen the next element to be removed from the queue will be the element at index 0, which is `4`.\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n\n  \"github.com/adrianbrad/queue\"\n)\n\nfunc main() {\n  elems := []int{2, 3, 4}\n\n  circularQueue := queue.NewCircular(elems, 3)\n\n  containsTwo := circularQueue.Contains(2)\n  fmt.Println(containsTwo) // true\n\n  size := circularQueue.Size()\n  fmt.Println(size) // 3\n\n  empty := circularQueue.IsEmpty()\n  fmt.Println(empty) // false\n\n  if err := circularQueue.Offer(1); err != nil {\n    // handle err\n  }\n\n  elem, err := circularQueue.Get()\n  if err != nil {\n    // handle err\n  }\n\n  fmt.Printf(\"elem: %d\\n\", elem) // elem: 1\n}\n```\n\n### Linked Queue\n\nA linked queue, implemented as a singly linked list, offering O(1)\ntime complexity for enqueue and dequeue operations. The queue maintains pointers\nto both the head (front) and tail (end) of the list for efficient operations\nwithout the need for traversal.\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n\n  \"github.com/adrianbrad/queue\"\n)\n\nfunc main() {\n  elems := []int{2, 3, 4}\n\n  circularQueue := queue.NewLinked(elems)\n\n  containsTwo := circularQueue.Contains(2)\n  fmt.Println(containsTwo) // true\n\n  size := circularQueue.Size()\n  fmt.Println(size) // 3\n\n  empty := circularQueue.IsEmpty()\n  fmt.Println(empty) // false\n\n  if err := circularQueue.Offer(1); err != nil {\n    // handle err\n  }\n\n  elem, err := circularQueue.Get()\n  if err != nil {\n    // handle err\n  }\n\n  fmt.Printf(\"elem: %d\\n\", elem) // elem: 2\n}\n```\n\n## Benchmarks \n\nResults as of October 2023.\n\n```text\nBenchmarkBlockingQueue/Peek-8           84873882                13.98 ns/op            0 B/op          0 allocs/op\nBenchmarkBlockingQueue/Get_Offer-8      27135865                47.00 ns/op           44 B/op          0 allocs/op\nBenchmarkBlockingQueue/Offer-8          53750395                25.40 ns/op           43 B/op          0 allocs/op\nBenchmarkCircularQueue/Peek-8           86001980                13.76 ns/op            0 B/op          0 allocs/op\nBenchmarkCircularQueue/Get_Offer-8      32379159                36.83 ns/op            0 B/op          0 allocs/op\nBenchmarkCircularQueue/Offer-8          63956366                18.77 ns/op            0 B/op          0 allocs/op\nBenchmarkLinkedQueue/Peek-8             1000000000              0.4179 ns/op           0 B/op          0 allocs/op\nBenchmarkLinkedQueue/Get_Offer-8        61257436                18.48 ns/op           16 B/op          1 allocs/op\nBenchmarkLinkedQueue/Offer-8            38975062                30.74 ns/op           16 B/op          1 allocs/op\nBenchmarkPriorityQueue/Peek-8           86633734                14.02 ns/op            0 B/op          0 allocs/op\nBenchmarkPriorityQueue/Get_Offer-8      29347177                39.88 ns/op            0 B/op          0 allocs/op\nBenchmarkPriorityQueue/Offer-8          40117958                31.37 ns/op           54 B/op          0 allocs/op\n```\n","funding_links":[],"categories":["Data Structures and Algorithms","Go","数据结构与算法","Data Integration Frameworks"],"sub_categories":["Queues","队列"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianbrad%2Fqueue","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrianbrad%2Fqueue","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrianbrad%2Fqueue/lists"}