{"id":19133552,"url":"https://github.com/gui-cs/nstack","last_synced_at":"2025-04-04T15:08:54.411Z","repository":{"id":21530943,"uuid":"91060783","full_name":"gui-cs/NStack","owner":"gui-cs","description":"New Stack - Explorations on Unicode, IO, new idioms and error handling for .NET","archived":false,"fork":false,"pushed_at":"2024-01-22T13:51:28.000Z","size":1407,"stargazers_count":126,"open_issues_count":24,"forks_count":30,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2025-03-28T14:06:52.643Z","etag":null,"topics":["cross-platform","csharp","dotnet","runes","strings","text","unicode"],"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/gui-cs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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-12T06:53:08.000Z","updated_at":"2025-01-14T21:43:41.000Z","dependencies_parsed_at":"2024-11-09T06:25:18.380Z","dependency_job_id":"07878e14-753a-4265-9ee8-b389003d8029","html_url":"https://github.com/gui-cs/NStack","commit_stats":{"total_commits":196,"total_committers":8,"mean_commits":24.5,"dds":0.6224489795918368,"last_synced_commit":"92b5d7f56bad11a9ce637797d0c8c4a14d6f50c5"},"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gui-cs%2FNStack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gui-cs%2FNStack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gui-cs%2FNStack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gui-cs%2FNStack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gui-cs","download_url":"https://codeload.github.com/gui-cs/NStack/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247198461,"owners_count":20900080,"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":["cross-platform","csharp","dotnet","runes","strings","text","unicode"],"created_at":"2024-11-09T06:22:54.268Z","updated_at":"2025-04-04T15:08:54.392Z","avatar_url":"https://github.com/gui-cs.png","language":"C#","readme":"# NStack\n\n![Build](https://github.com/gui-cs/NStack/actions/workflows/build.yml/badge.svg)\n[![Version](https://img.shields.io/nuget/v/NStack.Core.svg)](https://www.nuget.org/packages/NStack.Core)\n[![Downloads](https://img.shields.io/nuget/dt/NStack.Core)](https://www.nuget.org/packages/NStack.Core)\n[![License](https://img.shields.io/github/license/gui-cs/NStack.svg)](LICENSE)\n![Bugs](https://img.shields.io/github/issues/gui-cs/NStack)\n\nNOTE: NStack has moved to the [gui-cs org](https://github.com/orgs/gui-cs/).\n\nCurrently, this library contains a port of the Go string, and Go rune support as well as other Unicode helper methods.\n\nYou can browse the [API documentation](https://gui-cs.github.io/NStack).\n\nInstall the [NuGet package from NuGet.org](https://www.nuget.org/packages/NStack.Core) by installing `NStack.Core`.\n\n# Future Additions\n\nThe long term goal is to make this module an exploration of what the .NET APIs for IO looked like if they only\nused exceptions for either invalid parameters being passed to\nmethods and used results/error codes for most IO operations:\n\n* Exceptions have a role, but IO code tends to become ugly in its presence.\n\n* Other areas include making an IO layer that does not surface \"string\" for\nfilenames, as in Unix there are really no filenames as we treat them in\n.NET, but rather file names are a collection of bytes, which do not necessarily\ncan be decoded into UTF8 [1].  \n\nTo make things simple, this assumes that UTF8 strings (ustring in this code)\ncan exist without them being valid UTF8 strings, but rather a collection of bytes.\n\n[1] For example, older file systems can have filenames that made sense with\na particular character set and are effectively not possible to map into strings.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgui-cs%2Fnstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgui-cs%2Fnstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgui-cs%2Fnstack/lists"}