{"id":13735327,"url":"https://github.com/genotrance/shared","last_synced_at":"2026-03-09T11:05:20.192Z","repository":{"id":136979661,"uuid":"196326373","full_name":"genotrance/shared","owner":"genotrance","description":"Nim library for shared types","archived":false,"fork":false,"pushed_at":"2019-07-31T18:32:58.000Z","size":78,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-07-21T04:27:18.085Z","etag":null,"topics":["locks","nim","seq","shared","string","threads"],"latest_commit_sha":null,"homepage":"","language":"Nim","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/genotrance.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":"2019-07-11T05:36:37.000Z","updated_at":"2024-09-12T13:19:49.000Z","dependencies_parsed_at":"2023-03-22T12:17:05.297Z","dependency_job_id":null,"html_url":"https://github.com/genotrance/shared","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/genotrance/shared","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genotrance%2Fshared","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genotrance%2Fshared/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genotrance%2Fshared/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genotrance%2Fshared/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/genotrance","download_url":"https://codeload.github.com/genotrance/shared/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/genotrance%2Fshared/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30291856,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["locks","nim","seq","shared","string","threads"],"created_at":"2024-08-03T03:01:05.585Z","updated_at":"2026-03-09T11:05:20.168Z","avatar_url":"https://github.com/genotrance.png","language":"Nim","funding_links":[],"categories":["Language Features"],"sub_categories":["Threading"],"readme":"shared is a [Nim](https://nim-lang.org/) library for shared types\n\nNim has a great string and seq implementation but sharing them across thread boundaries is problematic due to the thread local GC. This package attempts to provide basic shared types that can be used across threads.\n\nThe API attempts to be the same but not as extensive as the standard API. E.g. $ and \u0026 work as expected, but not every capability is being duplicated. Further, the implementation aims for safety and performance may not be the priority until later on. Every assignment results in realloc and copy to keep things simple.\n\n__Installation__\n\nshared can be installed via [Nimble](https://github.com/nim-lang/nimble):\n\n```\n\u003e nimble install shared\n```\n\nThis will download and install shared in the standard Nimble package location, typically ~/.nimble. Once installed, it can be imported into any Nim program.\n\n__Usage__\n\nDetailed documentation [here](https://genotrance.github.io/shared/theindex.html).\n\n```nim\nimport shared/string\n\nvar\n  ss1 = newSharedString(\"abc\")\n\necho ss1\nss1 = \"def\"\necho ss1\n```\n\n```nim\nimport shared/seq\n\nvar\n  sq1 = newSharedSeq(@[1, 2, 3])\n  sq2 = newSharedSeq(@[\"a\", \"b\", \"c\"])\n  sq3: SharedSeq[string]\n\necho sq1\necho sq2\nsq2.set(@[\"d\", \"e\", \"f\"])\nsq3 = sq2\n```\n\n__Feedback__\n\nshared is a work in progress and any feedback or suggestions are welcome. It is hosted on [GitHub](https://github.com/genotrance/shared) with an MIT license so issues, forks and PRs are most appreciated.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenotrance%2Fshared","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgenotrance%2Fshared","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgenotrance%2Fshared/lists"}