{"id":13380059,"url":"https://github.com/mna/agora","last_synced_at":"2025-03-13T06:32:13.543Z","repository":{"id":9020656,"uuid":"10777853","full_name":"mna/agora","owner":"mna","description":"a dynamically typed, garbage collected, embeddable programming language built with Go","archived":true,"fork":false,"pushed_at":"2015-01-25T17:12:45.000Z","size":4705,"stargazers_count":325,"open_issues_count":20,"forks_count":27,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-07-30T08:06:19.842Z","etag":null,"topics":["programming-language"],"latest_commit_sha":null,"homepage":"https://github.com/mna/agora/wiki","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mna.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-19T02:16:30.000Z","updated_at":"2024-07-09T09:48:23.000Z","dependencies_parsed_at":"2022-07-09T22:18:48.596Z","dependency_job_id":null,"html_url":"https://github.com/mna/agora","commit_stats":null,"previous_names":["puerkitobio/agora"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mna%2Fagora","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mna%2Fagora/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mna%2Fagora/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mna%2Fagora/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mna","download_url":"https://codeload.github.com/mna/agora/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243104055,"owners_count":20236944,"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":["programming-language"],"created_at":"2024-07-30T08:00:57.944Z","updated_at":"2025-03-13T06:32:13.157Z","avatar_url":"https://github.com/mna.png","language":"Go","funding_links":[],"categories":["Embeddable Scripting Languages"],"sub_categories":["Advanced Console UIs"],"readme":"# The agora programming language\n\nAgora is a dynamically typed, garbage collected, embeddable programming language. It is built with the Go programming language, and is meant to provide a syntactically similar, loose and dynamic companion to the statically typed, machine compiled Go language - somewhat like Lua is to C.\n\n## Installation\n\n`go get -t github.com/PuerkitoBio/agora/...`\n\nThis will install the agora packages as well as the `agora` command-line tool. See `agora -h` for help, provided the `$GOPATH/bin` path is in your exported path. The `-t` flag installs the test dependencies, it works only on Go 1.2 and later, omit it otherwise.\n\n## Example\n\nMuch more examples are available in the wiki and the source code under /testdata/src, but to give a taste of the syntax, here is the mandatory `hello world`:\n\n```\n// Output: Hello, Agora !\nfmt := import(\"fmt\")\nfunc greet(name) {\n\tfmt.Println(\"Hello,\", name, \"!\")\n}\ngreet(\"Agora\")\n```\n\nA few things to note:\n\n* It looks *very* similar to Go, minus the types.\n* `import` is a built-in function, not a keyword. This is important with dynamically-loaded modules, it gives you control of where this overhead of loading and compiling the code is done. It returns the value exported by the module - in this case, an object that exposes methods like `Println`.\n* Obviously, since this is a dynamically-typed language, arguments have no types.\n* `:=` introduces a new variable. Using an undefined variable is an error, so this statement could not have been `=`.\n* Statements are valid in the top-level (module) scope. That's because a module (the name for an agora file) is an implicit (top-level) function.\n* Semicolons are managed just like in Go, so although they are inserted in the scanning stage, they are optional (and usually omitted) in the source code.\n\n## Resources\n\n* Getting started: https://github.com/PuerkitoBio/agora/wiki/Getting-started\n* Documentation's index in the wiki: https://github.com/PuerkitoBio/agora/wiki\n* Source code documentation on GoDoc: http://godoc.org/github.com/PuerkitoBio/agora\n\n## Changelog\n\n### v0.2.0 / 2013-10-08\n\n* Coroutines, closures, for..range\n    - Closed issues: https://github.com/PuerkitoBio/agora/issues?milestone=2\u0026page=1\u0026state=closed\n    - Wiki: https://github.com/PuerkitoBio/agora/wiki#v02\n    - Blog post: http://0value.com/agora-v0-2--closures--coroutines-and-for--range\n\n### v0.1.0 / 2013-09-17\n\n* Initial release\n    - Closed issues: https://github.com/PuerkitoBio/agora/issues?milestone=1\u0026state=closed\n    - Wiki: https://github.com/PuerkitoBio/agora/wiki#v01\n    - Blog post: http://0value.com/introducing-agora--a-dynamic--embeddable-programming-language-built-with-Go\n\n## License\n\nAgora is licensed under the [BSD 3-Clause License][bsd], the same as the Go programming language. The full text of the license is available in the LICENSE file at the root of the repository.\n\n[bsd]: http://opensource.org/licenses/BSD-3-Clause\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmna%2Fagora","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmna%2Fagora","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmna%2Fagora/lists"}