{"id":15394319,"url":"https://github.com/xyproto/gcstr","last_synced_at":"2025-04-15T23:53:26.470Z","repository":{"id":136547652,"uuid":"372273524","full_name":"xyproto/gcstr","owner":"xyproto","description":"Safe garbage collected strings for C, inspired by Go","archived":false,"fork":false,"pushed_at":"2021-11-03T22:44:48.000Z","size":55,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T03:04:00.584Z","etag":null,"topics":["c","c11","go","strings"],"latest_commit_sha":null,"homepage":"","language":"C","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/xyproto.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":"2021-05-30T17:16:29.000Z","updated_at":"2024-09-07T15:44:44.000Z","dependencies_parsed_at":"2024-06-03T08:20:59.112Z","dependency_job_id":null,"html_url":"https://github.com/xyproto/gcstr","commit_stats":{"total_commits":23,"total_committers":2,"mean_commits":11.5,"dds":"0.13043478260869568","last_synced_commit":"f3971f39b552cf2c7dc9627ebf8048ee3daaafbb"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgcstr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgcstr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgcstr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xyproto%2Fgcstr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xyproto","download_url":"https://codeload.github.com/xyproto/gcstr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249173061,"owners_count":21224481,"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":["c","c11","go","strings"],"created_at":"2024-10-01T15:23:17.647Z","updated_at":"2025-04-15T23:53:26.438Z","avatar_url":"https://github.com/xyproto.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gcstr\n\nSafe garbage collected strings for C, inspired by Go.\n\n## Requirements\n\n* A C compiler that supports C11, ie. `gcc` or `clang`.\n* The garbage collection library [gc](http://www.hboehm.info/gc/) (available as the `gc` package in many Linux distros).\n* `make` and `pkg-config`.\n\n## Guidelines/limitations/ideas\n\n* `-1` should never be returned to indicate a problem or that something is not found. Return a struct instead.\n* `String*` should be supported by every function that can take a string.\n* The `Error*` type can be `nil` to indicate no error. Otherwise, it should contain info about the error.\n* In lack of generics, use function signatures that contains the types, like `const char* ErrorToCharPtr(Error* err);`. It's verbose, but clear.\n* Make things correct first, then fast later.\n* All functions may panic if memory can not be allocated.\n* If functions may panic for other reasons, the function name must be prefixed with **Must**.\n* Error messages should start with a lowercase letter and not end with punctuation.\n* The API is stable for each major version number.\n\n## Make\n\n### Build\n\n    make\n\n### Install\n\n    sudo make install\n\n## [`CXX`](https://github.com/xyproto/cxx)\n\n### Build and run tests\n\n    cxx run\n\n## CMake and Ninja\n\n### Build\n\n    cmake -B build -G Ninja -D CMAKE_INSTALL_PREFIX=/usr\n    ninja -C build\n\n### Install\n\n    sudo ninja -C build install\n\n## General info\n\n* Version: 4.0.0\n* License: BSD\n* Author: Alexander F. Rødseth \u0026lt;xyproto@archlinux.org\u0026gt;\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fgcstr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxyproto%2Fgcstr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxyproto%2Fgcstr/lists"}