{"id":20626205,"url":"https://github.com/mmcshane/nls","last_synced_at":"2025-07-28T18:10:43.080Z","repository":{"id":57609974,"uuid":"191991242","full_name":"mmcshane/nls","owner":"mmcshane","description":"Non-lexical Scopes for Go","archived":false,"fork":false,"pushed_at":"2021-10-15T23:32:31.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-17T06:23:27.688Z","etag":null,"topics":["go","golang","resource-management","scoping"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mmcshane.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}},"created_at":"2019-06-14T18:46:54.000Z","updated_at":"2021-10-15T23:24:15.000Z","dependencies_parsed_at":"2022-08-27T21:23:49.293Z","dependency_job_id":null,"html_url":"https://github.com/mmcshane/nls","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmcshane%2Fnls","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmcshane%2Fnls/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmcshane%2Fnls/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mmcshane%2Fnls/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mmcshane","download_url":"https://codeload.github.com/mmcshane/nls/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242483294,"owners_count":20135784,"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":["go","golang","resource-management","scoping"],"created_at":"2024-11-16T13:12:17.551Z","updated_at":"2025-03-08T00:34:11.094Z","avatar_url":"https://github.com/mmcshane.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NLS is Non-lexical Scopes for Go\n\n[![GoDoc](https://godoc.org/github.com/mmcshane/nls?status.svg)](https://godoc.org/github.com/mmcshane/nls)\n\nGo has `defer` which gives something approaching strict lexical lifetimes for\nresource management but there is no direct support for object or resource\nlifetimes that may outlive the function in which they are created. This small\nlibrary allows the user to create a tree of scope instances, each of which owns\nthe lifetime of zero or more resource-consuming objects (e.g. goroutines,\nsockets, gRPC clients, etc) and which can be used to cleanly release said\nresources.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmcshane%2Fnls","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmmcshane%2Fnls","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmmcshane%2Fnls/lists"}