{"id":14966140,"url":"https://github.com/azawawi/perl6-inline-go","last_synced_at":"2025-10-25T13:31:17.596Z","repository":{"id":149410281,"uuid":"112228587","full_name":"azawawi/perl6-inline-go","owner":"azawawi","description":"Use Go code within Perl 6","archived":false,"fork":false,"pushed_at":"2017-12-02T09:17:44.000Z","size":62,"stargazers_count":27,"open_issues_count":0,"forks_count":2,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-31T07:21:40.147Z","etag":null,"topics":["go","golang","inline","perl6"],"latest_commit_sha":null,"homepage":null,"language":"Perl 6","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/azawawi.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}},"created_at":"2017-11-27T17:47:15.000Z","updated_at":"2022-12-30T08:24:08.000Z","dependencies_parsed_at":"2023-09-03T22:39:46.007Z","dependency_job_id":null,"html_url":"https://github.com/azawawi/perl6-inline-go","commit_stats":{"total_commits":51,"total_committers":1,"mean_commits":51.0,"dds":0.0,"last_synced_commit":"9623506d666ef1c8d909f5b7fe5cc190caf84134"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azawawi%2Fperl6-inline-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azawawi%2Fperl6-inline-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azawawi%2Fperl6-inline-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azawawi%2Fperl6-inline-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azawawi","download_url":"https://codeload.github.com/azawawi/perl6-inline-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238147600,"owners_count":19424291,"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","inline","perl6"],"created_at":"2024-09-24T13:35:52.877Z","updated_at":"2025-10-25T13:31:17.225Z","avatar_url":"https://github.com/azawawi.png","language":"Perl 6","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Inline::Go\n\n [![Build Status](https://travis-ci.org/azawawi/perl6-inline-go.svg?branch=master)](https://travis-ci.org/azawawi/perl6-inline-go) [![Build status](https://ci.appveyor.com/api/projects/status/github/azawawi/perl6-inline-go?svg=true)](https://ci.appveyor.com/project/azawawi/perl6-inline-go/branch/master)\n\n\nUse inline [Go](https://golang.org/) code within your Perl 6 source code. The\nproject has the following ambitious goals to achieve:\n\n- Parse Go code using Perl 6 grammars with test suite taking directly from Go\n  language specification.\n- Transform Go functions and classes to be usable within Perl 6.\n- Provide a simple and robust way to take advantage of Go groutines in Perl 6.\n\n**Note:** This currently a totally **experimental** module. Please do not use on\na production system.\n\nThe module is currently using simple regular expression to find exported go\nfunctions signatures with a simple Go-to-Perl-6 type mapping. The Perl 6\nNativeCall Go function wrapper is added via an evil `EVAL` into the current\nobject via a role (to support multiple objects).\n\n## Example\n\n```Perl6\nuse v6.c;\n\nmy $code = '\npackage main\n\nimport (\"C\"; \"fmt\")\n\n//export Add_Int32\nfunc Add_Int32(a int, b int) int { return a + b }\n\n//export Hello\nfunc Hello() { fmt.Println(\"Hello from Go!\") }\n\nfunc main() { }\n';\n\nmy $go = Inline::Go.new( :code( $code ) );\n$go.import-all;\n$go.Hello;\nsay $go.Add_Int32(1, 2);\n```\n\nFor more examples, please see the [examples](examples) folder.\n\n## Installation\n\n- Please install the Go language toolchain from [here](https://golang.org/dl/). You\nneed at least Go 1.5 or later.\n\n- **On windows**, you need the gcc toolchain. Luckily you can have that easily\nby installing [Strawberry Perl](http://strawberryperl.com/).\n\n- Install it using zef (a module management tool bundled with Rakudo Star):\n\n```\n$ zef install Inline::Go\n```\n\n## Testing\n\n- To run tests:\n```\n$ prove -ve \"perl6 -Ilib\"\n```\n\n- To run all tests including author tests (Please make sure\n[Test::Meta](https://github.com/jonathanstowe/Test-META) is installed):\n```\n$ zef install Test::META\n$ AUTHOR_TESTING=1 prove -e \"perl6 -Ilib\"\n```\n\n## See Also\n\n- [Calling Go Functions from Other Languages](https://medium.com/learning-the-go-programming-language/calling-go-functions-from-other-languages-4c7d8bcc69bf).\n- [The Go Programming Language Specification ](https://golang.org/ref/spec).\n- [cgo Wiki](https://github.com/golang/go/wiki/cgo).\n\n## Author\n\nAhmad M. Zawawi, [azawawi](https://github.com/azawawi/) on `#perl6`.\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazawawi%2Fperl6-inline-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazawawi%2Fperl6-inline-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazawawi%2Fperl6-inline-go/lists"}