{"id":30314069,"url":"https://github.com/clarify/guma","last_synced_at":"2025-08-17T18:56:32.453Z","repository":{"id":111675597,"uuid":"91684247","full_name":"clarify/guma","owner":"clarify","description":"Will be our new open source OPC UA library","archived":false,"fork":false,"pushed_at":"2019-07-31T11:54:28.000Z","size":357,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2023-03-05T10:48:11.306Z","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/clarify.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":"2017-05-18T11:13:33.000Z","updated_at":"2024-06-19T12:28:18.193Z","dependencies_parsed_at":"2023-05-25T10:15:34.260Z","dependency_job_id":null,"html_url":"https://github.com/clarify/guma","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/clarify/guma","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarify%2Fguma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarify%2Fguma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarify%2Fguma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarify%2Fguma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clarify","download_url":"https://codeload.github.com/clarify/guma/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clarify%2Fguma/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270892212,"owners_count":24663543,"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-17T02:00:09.016Z","response_time":129,"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":"2025-08-17T18:56:19.603Z","updated_at":"2025-08-17T18:56:32.409Z","avatar_url":"https://github.com/clarify.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Guma (deprecated)\n\n**Disclaimer: The code as it stands, is released as an inspiration to others, but does not offer a high-level interface and probably contain some bugs.**\n\n## History\n\nIn [Searis](http://searis.no), we have the experience from having developed a OPC UA library in Go already back in 2014, although for a specific purpose, so GUMA was actually our second attempt where we started from scratch, and moved from mostly hand-written code to mostly generated code.\n\nGUMA was written to be a general purpose open source [OPC UA](https://opcfoundation.org/about/opc-technologies/opc-ua/) client library for the [Go](https://golang.org) programming language. However, due to priorities and limited resources we never made it so far, and the project has been on hold since Nov 22, 2017, shrotly after the work had started.\n\nRecently we have dicovered that there is [another](https://github.com/gopcua/opcua) open source initative for OPC UA in Go that has gained traction, and we have chosen to finally deprecate this project. However, we also want to share what we have learned, and have chosen to open soure the code as an inspiration to others under an MIT License. It's also possible to fork or adopt this project if the code base is of particular interest to anyone.\n\n![Image of the Guma](/misc/img/guma.png)\n\n## Repository structure\n\nAt the moment, this repo includes the following:\n\n- generate/scripts:\n  - A script to download the OPC UA XML and CSV schemas.\n- generate/cmd:\n  - Commands used to generate code structures from XML and CSV.\n- stack\n  - A low level client for talking to OPC UA servers\n- stack/uatype:\n  - A package exporting a set of Go types that has mostly been generated from source.\n- stack/transport:\n  - A parent package for OPC UA Secure Channel implementations.\n- stack/ecoding/binary:\n  - A package similar to `encoding/json` in the standard library, that allows encoding of structs into an OPC UA binary representation.\n\n## Status\n\n- [x] Handshake and opening of Secure Channel.\n- [ ] Closing a secure channel (easy, but not implemented).\n- [x] Access to all OPC UA Service calls, such as Read, Browse and Subscribe.\n- [x] SecureChannel made safe for concurrent access (necesary for e.g. Subscribe).\n- [ ] Secure channel Message signing and encryption.\n- [ ] Stateless HTTPS / HTTP.\n- [ ] Reconnect TCP Socket on errors.\n- [ ] Re-new Secure Channels at 75% of revised lifetine.\n\n## Development\n\nTo re-generate code, we rely on [Go task](https://taskfile.dev/#/):\n\n    task generate\n\nSee all tasks with `task -l`.\n\nKnown issues: patch to schema XML files no longer applies (OPC UA 1.03):\n\n```sh\n$ task download-schema\n...\nHunk #175 succeeded at 2361 (offset 30 lines).\nHunk #176 FAILED at 2375.\n1 out of 176 hunks FAILED -- saving rejects to file schemas/1.03/Opc.Ua.Types.bsd.xml.rej\n$ cat schemas/1.03/Opc.Ua.Types.bsd.xml.rej                                                                              :(\n***************\n*** 2378\n- \u003c/opc:TypeDictionary\u003e--- 2375 -----\n+ \u003c/opc:TypeDictionary\u003e\n```\n\nRun unit-tests:\n\n    dep ensure\n    go test -v ./...\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarify%2Fguma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclarify%2Fguma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclarify%2Fguma/lists"}