{"id":38920041,"url":"https://github.com/spurge/goset","last_synced_at":"2026-01-17T15:32:45.179Z","repository":{"id":57529642,"uuid":"110464913","full_name":"spurge/goset","owner":"spurge","description":"Async settings library for go","archived":false,"fork":false,"pushed_at":"2018-11-02T20:47:58.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-06-20T12:42:57.270Z","etag":null,"topics":["async","golang","goroutine","json","settings"],"latest_commit_sha":null,"homepage":"","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/spurge.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":"2017-11-12T20:06:15.000Z","updated_at":"2018-11-02T20:48:00.000Z","dependencies_parsed_at":"2022-08-26T05:10:36.351Z","dependency_job_id":null,"html_url":"https://github.com/spurge/goset","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/spurge/goset","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spurge%2Fgoset","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spurge%2Fgoset/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spurge%2Fgoset/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spurge%2Fgoset/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spurge","download_url":"https://codeload.github.com/spurge/goset/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spurge%2Fgoset/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511569,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: 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":["async","golang","goroutine","json","settings"],"created_at":"2026-01-17T15:32:45.105Z","updated_at":"2026-01-17T15:32:45.160Z","avatar_url":"https://github.com/spurge.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n# goset\n`import \"github.com/spurge/goset\"`\n\n* [Overview](#pkg-overview)\n* [Index](#pkg-index)\n* [Subdirectories](#pkg-subdirectories)\n\n## \u003ca name=\"pkg-overview\"\u003eOverview\u003c/a\u003e\nPackage goset is a settings library that provides async loading of settings\nwith a handy getter.\n\nYou can load and set with the same instance and it'll merge all your settings.\nEvent though all Load and Set actions are running async, they'll merge your\nsettings in the same order as you typed them.\n\nExample of use:\n\n\n\tsettings := Settings.New()\n\t// Set some default values\n\tsettings.Set(map[string]interfaces{}{\n\t\t\"some-key\": map[string]interfaces{}{\n\t\t\t\"hello\": \"world\",\n\t\t},\n\t})\n\t// Then load some json data\n\t// For now, goset does only sopport JSON.\n\tsettings.Load(\"some-file.json\")\n\t// Fetch some values\n\tval, err := settings.Get(\"some-key.hello\")\n\t\n\t// You can even chain them ...\n\tsettings.Set(...).Load(\"file\")\n\n\n\n\n## \u003ca name=\"pkg-index\"\u003eIndex\u003c/a\u003e\n* [type Settings](#Settings)\n  * [func New() Settings](#New)\n  * [func (s *Settings) Get(path string) (interface{}, error)](#Settings.Get)\n  * [func (s *Settings) Load(filename string) *Settings](#Settings.Load)\n  * [func (s *Settings) Set(values map[string]interface{}) *Settings](#Settings.Set)\n\n\n#### \u003ca name=\"pkg-files\"\u003ePackage files\u003c/a\u003e\n[goset.go](/src/github.com/spurge/goset/goset.go) [util.go](/src/github.com/spurge/goset/util.go) \n\n\n\n\n\n\n## \u003ca name=\"Settings\"\u003etype\u003c/a\u003e [Settings](/src/target/goset.go?s=763:920#L33)\n``` go\ntype Settings struct {\n    // contains filtered or unexported fields\n}\n```\n\n\n\n\n\n\n### \u003ca name=\"New\"\u003efunc\u003c/a\u003e [New](/src/target/goset.go?s=962:981#L43)\n``` go\nfunc New() Settings\n```\nCreate a new goset settings instance\n\n\n\n\n\n### \u003ca name=\"Settings.Get\"\u003efunc\u003c/a\u003e (\\*Settings) [Get](/src/target/goset.go?s=1402:1458#L62)\n``` go\nfunc (s *Settings) Get(path string) (interface{}, error)\n```\nGet values from your settings\n\n\n\n\n### \u003ca name=\"Settings.Load\"\u003efunc\u003c/a\u003e (\\*Settings) [Load](/src/target/goset.go?s=1108:1158#L50)\n``` go\nfunc (s *Settings) Load(filename string) *Settings\n```\nLoad local JSON file and merge it's values into the settings instance\n\n\n\n\n### \u003ca name=\"Settings.Set\"\u003efunc\u003c/a\u003e (\\*Settings) [Set](/src/target/goset.go?s=1259:1322#L56)\n``` go\nfunc (s *Settings) Set(values map[string]interface{}) *Settings\n```\nSet and merge values into the settings instance\n\n\n\n\n\n\n\n\n- - -\nGenerated by [godoc2md](http://godoc.org/github.com/davecheney/godoc2md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspurge%2Fgoset","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspurge%2Fgoset","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspurge%2Fgoset/lists"}