{"id":15056292,"url":"https://github.com/nicolito128/goetf","last_synced_at":"2025-04-10T04:07:36.112Z","repository":{"id":250930412,"uuid":"835599432","full_name":"nicolito128/goetf","owner":"nicolito128","description":"Go encoding and decoding module for ETF (External Term Format).","archived":false,"fork":false,"pushed_at":"2024-08-13T03:44:45.000Z","size":118,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-10T04:07:28.514Z","etag":null,"topics":["encoding-decoding","erlang","etf","go","golang"],"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/nicolito128.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-30T06:54:31.000Z","updated_at":"2025-02-06T22:48:23.000Z","dependencies_parsed_at":"2024-08-13T04:40:16.343Z","dependency_job_id":"c1896180-00b0-45d2-9bfd-9de59772ed1f","html_url":"https://github.com/nicolito128/goetf","commit_stats":null,"previous_names":["nicolito128/goetf"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolito128%2Fgoetf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolito128%2Fgoetf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolito128%2Fgoetf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicolito128%2Fgoetf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicolito128","download_url":"https://codeload.github.com/nicolito128/goetf/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248154986,"owners_count":21056543,"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":["encoding-decoding","erlang","etf","go","golang"],"created_at":"2024-09-24T21:49:46.088Z","updated_at":"2025-04-10T04:07:36.089Z","avatar_url":"https://github.com/nicolito128.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GoETF\r\n\r\n\u003e [!WARNING]\r\n\u003e The module is not yet at version `1.0.0` so it's not possible to ensure that there will be no breaking changes.\r\n\r\nGo encoding module for ETF (External Term Format).\r\n\r\n## Why GoETF?\r\nThe external term format is mainly used in Erlang's distribution system. Occasionally, it's necessary to encode and decode this particular binary format for communication between different APIs. This format offers the advantage of being faster and more lightweight compared to traditional JSON.\r\n\r\n## Getting started\r\n\r\n### Requirements\r\n\r\n* `go v1.22+`\r\n\r\n### Installation\r\n\r\n    go get -u github.com/nicolito128/goetf\r\n\r\n### Encoding example\r\n\r\n```go\r\npackage main\r\n\r\nimport (\r\n\t\"fmt\"\r\n\r\n\t\"github.com/nicolito128/goetf\"\r\n)\r\n\r\nfunc main() {\r\n\tphrase := \"Hello, world!\"\r\n\r\n\tdata, err := goetf.Marshal(phrase)\r\n\tif err != nil {\r\n\t\tpanic(err)\r\n\t}\r\n\r\n\tfmt.Println(\"Encoded:\", data)\r\n}\r\n```\r\n\r\n### Decoding example\r\n\r\n```go\r\npackage main\r\n\r\nimport (\r\n\t\"fmt\"\r\n\r\n\t\"github.com/nicolito128/goetf\"\r\n)\r\n\r\nfunc main() {\r\n\tvar out int\r\n\r\n    bin := []byte{131, 98, 0, 0, 1, 1}\r\n\tif err := goetf.Unmarshal(bin, \u0026out); err != nil {\r\n\t\tpanic(err)\r\n\t}\r\n\r\n\tfmt.Println(\"Out:\", out)\r\n}\r\n```\r\n\r\nFor both examples, use the `go run` command, like:\r\n\r\n\tgo run example_file.go\r\n\r\n### Examples\r\n\r\n* Visit the [examples folder](./examples) for more sample codes.\r\n\r\n## References\r\n\r\n* [Erlang Runtime System Application (ERTS) - External Term Format](https://www.erlang.org/doc/apps/erts/erl_ext_dist.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolito128%2Fgoetf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicolito128%2Fgoetf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicolito128%2Fgoetf/lists"}