{"id":15089120,"url":"https://github.com/yaml/yamlscript-go","last_synced_at":"2025-08-16T14:32:05.872Z","repository":{"id":247012080,"uuid":"824680415","full_name":"yaml/yamlscript-go","owner":"yaml","description":"Go Binding for libyamlscript","archived":false,"fork":false,"pushed_at":"2025-07-18T18:40:04.000Z","size":23,"stargazers_count":11,"open_issues_count":2,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-02T00:53:40.755Z","etag":null,"topics":[],"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/yaml.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-07-05T17:11:14.000Z","updated_at":"2025-07-18T18:40:06.000Z","dependencies_parsed_at":"2024-07-19T22:14:15.760Z","dependency_job_id":"6221422d-32c4-48fb-9915-96ef0f4eed95","html_url":"https://github.com/yaml/yamlscript-go","commit_stats":{"total_commits":13,"total_committers":1,"mean_commits":13.0,"dds":0.0,"last_synced_commit":"e6ded01b8ec4e2ff89c643aa485f692992828d56"},"previous_names":["yaml/yamlscript-go"],"tags_count":32,"template":false,"template_full_name":null,"purl":"pkg:github/yaml/yamlscript-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaml%2Fyamlscript-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaml%2Fyamlscript-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaml%2Fyamlscript-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaml%2Fyamlscript-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaml","download_url":"https://codeload.github.com/yaml/yamlscript-go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaml%2Fyamlscript-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270723235,"owners_count":24634345,"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","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-09-25T08:40:44.334Z","updated_at":"2025-08-16T14:32:05.858Z","avatar_url":"https://github.com/yaml.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- DO NOT EDIT — THIS FILE WAS GENERATED --\u003e\n\nYS / YAMLScript\n===============\n\nAdd Logic to Your YAML Files\n\n\n## Synopsis\n\nLoad `file.yaml` with YS:\n\n```yaml\n!YS-v0:\n\n# Get data from external sources:\nnames-url =:\n  'github:dominictarr/random-name/first-names.json'\n\nname-list =: names-url:curl:json/load\n\n# Data object with literal keys and generated values:\nname:: name-list:shuffle:first\naka:: name-list:rand-nth\nage:: \u0026num 2 * 3 * 7\ncolor:: \u0026hue\n  rand-nth: qw(red green blue yellow)\ntitle:: \"$(*num) shades of $(*hue).\"\n```\n\nand get:\n```json\n{\n  \"name\": \"Dolores\",\n  \"aka\": \"Anita\",\n  \"age\": 42,\n  \"color\": \"green\",\n  \"title\": \"42 shades of green.\"\n}\n```\n\n\n## Description\n\n[YS](https://yamlscript.org) is a functional programming language with a clean\nYAML syntax.\n\nYS can be used for enhancing ordinary [YAML](https://yaml.org) files with\nfunctional operations, such as:\n\n* Import (parts of) other YAML files to any node\n* String interpolation including function calls\n* Data transforms including ones defined by you\n\nThis YS library should be a drop-in replacement for your current YAML loader!\n\nMost existing YAML files are already valid YS files.\nThis means that YS works as a normal YAML loader, but can also evaluate\nfunctional expressions if asked to.\n\nUnder the hood, YS code compiles to the Clojure programming language.\nThis makes YS a complete functional programming language right out of the box.\n\nEven though YS compiles to Clojure, and Clojure compiles to Java, there is no\ndependency on Java or the JVM.\nYS is compiled to a native shared library (`libys.so`) that can be used\nby any programming language that can load shared libraries.\n\nTo see the Clojure code that YS compiles to, you can use the YS\nCLI binary `ys` to run:\n\n```text\n$ ys --compile file.ys\n(let\n [names-url \"https://raw.githubusercontent.com/dominictarr/random-name/master/first-names.json\"\n  name-list (json/load (curl names-url))]\n (%\n  \"name\" (first (shuffle name-list))\n  \"aka\" (rand-nth name-list)\n  \"age\" (_\u0026 'num (mul+ 2 3 7))\n  \"color\" (_\u0026 'hue (rand-nth (qw red green blue yellow)))\n  \"title\" (str (_** 'num) \" shades of \" (_** 'hue) \".\")))\n```\n\n## Go Usage\n\nIn `go.mod`:\n\n```go\nrequire github.com/yaml/yamlscript-go v0.2.2\n```\n\nFile `prog.go`:\n\n```go\npackage main\npackage main\n\nimport (\n        \"fmt\"\n        \"github.com/yaml/yamlscript-go\"\n)\n\nfunc main() {\n        data, err := yamlscript.Load(\"a: [b, c]\")\n        if err != nil {\n                return\n        }\n        fmt.Println(data)\n}\n```\n\n\n\n## Installation\n\nYou can install this module like any other Go module:\n\n```bash\n$ go get github.com/yaml/yamlscript-go@v0.2.2\n```\n\nbut you will need to have a system install of `libys.so`.\n\nOne simple way to do that is with:\n\n```bash\n$ curl https://yamlscript.org/install | bash\n```\n\n\u003e Note: The above command will install the latest version of the YAMLScript\ncommand line utility, `ys`, and the shared library, `libys.so`, into\n`~/local/bin` and `~/.local/lib` respectively.\n\nSee \u003chttps://yamlscript.org/doc/install/\u003e for more info.\n\n\n### Environment Variables\n\nAt the current time, you will need to set 3 environment variables to use the\nmodule:\n\n```bash\nexport CGO_CFLAGS=\"-I $HOME/.local/include\"\nexport CGO_LDFLAGS=\"-L $HOME/.local/lib\"\nexport LD_LIBRARY_PATH=\"$HOME/.local/lib\"\n```\n\n## See Also\n\n* [YS Web Site](https://yamlscript.org)\n* [YS Blog](https://yamlscript.org/blog)\n* [YS Source Code](https://github.com/yaml/yamlscript)\n* [YS Samples](https://github.com/yaml/yamlscript/tree/main/sample)\n* [YS Programs](https://rosettacode.org/wiki/Category:YAMLScript)\n* [YAML](https://yaml.org)\n* [Clojure](https://clojure.org)\n\n\n## Authors\n\n* [Ingy döt Net](https://github.com/ingydotnet)\n* [Andrew Pam](https://github.com/xanni)\n\n## License \u0026 Copyright\n\nCopyright 2022-2025 Ingy döt Net \u003cingy@ingy.net\u003e\n\nThis project is licensed under the terms of the `MIT` license.\nSee [LICENSE](https://github.com/yaml/yamlscript/blob/main/License) for\nmore details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaml%2Fyamlscript-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaml%2Fyamlscript-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaml%2Fyamlscript-go/lists"}