{"id":29413766,"url":"https://github.com/octahori/gomfig","last_synced_at":"2026-05-08T00:35:05.579Z","repository":{"id":303961451,"uuid":"1017282356","full_name":"octahori/gomfig","owner":"octahori","description":"Light-weight Go library for loading configuration from JSON (strict), with a clean API and ready-to-extend design for YAML, TOML, ENV, and remote back-ends.","archived":false,"fork":false,"pushed_at":"2025-07-10T14:24:52.000Z","size":23,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-10T18:19:33.237Z","etag":null,"topics":["cli-configuration","config-loader","configuration","consul","devops","env","etcd","go","go-module","golang","json","library","strict-parsing","toml","yaml"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/octahori/gomfig","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/octahori.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,"zenodo":null}},"created_at":"2025-07-10T09:46:48.000Z","updated_at":"2025-07-10T14:22:28.000Z","dependencies_parsed_at":"2025-07-10T18:29:47.916Z","dependency_job_id":"6e12b290-2bd0-4773-a61c-88da1bc4c8c8","html_url":"https://github.com/octahori/gomfig","commit_stats":null,"previous_names":["octahori/gomfig"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/octahori/gomfig","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octahori%2Fgomfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octahori%2Fgomfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octahori%2Fgomfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octahori%2Fgomfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octahori","download_url":"https://codeload.github.com/octahori/gomfig/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octahori%2Fgomfig/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264774051,"owners_count":23661791,"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":["cli-configuration","config-loader","configuration","consul","devops","env","etcd","go","go-module","golang","json","library","strict-parsing","toml","yaml"],"created_at":"2025-07-11T12:00:34.960Z","updated_at":"2026-05-08T00:35:00.550Z","avatar_url":"https://github.com/octahori.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gomfig  ![Version](https://img.shields.io/github/v/tag/octahori/gomfig?label=version)\n\n\u003e Current stable: **v0.2.2** (JSON, YAML, TOML)\n\nLight-weight, extensible Go library to load and merge configuration from multiple sources.\n\n`gomfig` is released under semantic versioning. Version **v0.2.2** supports **JSON, YAML, and TOML** configuration files. Upcoming minor versions will introduce ENV and remote back-ends. Upcoming branches will add YAML, TOML, ENV, and remote back-ends (Consul, etcd, …).\n\n## Features (current branch)\n\n* Decode JSON, YAML, and TOML files/streams into arbitrary Go structs or maps.\n* Strict mode for all loaders: unknown fields are rejected early.\n* Minimal API:\n\n```go\n// root package convenience helpers\ntype JSONLoader = gomfig.JSONLoader\n\nvar cfg struct {\n    DB struct {\n        Host string `json:\"host\"`\n        Port int    `json:\"port\"`\n    } `json:\"db\"`\n}\n\nif err := gomfig.LoadJSONFile(\"config.json\", \u0026cfg); err != nil {\n    log.Fatalf(\"load config: %v\", err)\n}\n```\n\n## Installation\n\n```sh\ngo get github.com/octahori/gomfig@v0.2.2\n```\n\n## Roadmap\n\n| Stage | Description |\n|-------|-------------|\n| ✓ JSON | Basic loader implementation + unit tests |\n| ✓ YAML | YAML loader (`yamlcfg`, strict mode) |\n| ✓ TOML | TOML loader (`tomlcfg`) |\n| ☐ ENV  | Map environment variables into struct with tags |\n| ☐ Remote | Consul / etcd loaders |\n\n## Contributing\n\n1. Fork and create a feature branch.\n2. Ensure `go test ./...` and `go vet ./...` pass.\n3. Open a pull request.\n\n---\n\nLicensed under the MIT License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctahori%2Fgomfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctahori%2Fgomfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctahori%2Fgomfig/lists"}