Skip to content
/ NStack Public

New Stack - Explorations on Unicode, IO, new idioms and error handling for .NET

License

Notifications You must be signed in to change notification settings

gui-cs/NStack

This branch is up to date with develop.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ce985f3 · Jan 22, 2024
Sep 17, 2022
Jan 19, 2024
Nov 20, 2022
Sep 17, 2022
Sep 16, 2022
Sep 17, 2022
Sep 17, 2022
May 14, 2017
May 26, 2022
Nov 20, 2022
Dec 4, 2022
Nov 20, 2022

Repository files navigation

NStack

Build Version Downloads License Bugs

NOTE: NStack has moved to the gui-cs org.

Currently, this library contains a port of the Go string, and Go rune support as well as other Unicode helper methods.

You can browse the API documentation.

Install the NuGet package from NuGet.org by installing NStack.Core.

Future Additions

The long term goal is to make this module an exploration of what the .NET APIs for IO looked like if they only used exceptions for either invalid parameters being passed to methods and used results/error codes for most IO operations:

  • Exceptions have a role, but IO code tends to become ugly in its presence.

  • Other areas include making an IO layer that does not surface "string" for filenames, as in Unix there are really no filenames as we treat them in .NET, but rather file names are a collection of bytes, which do not necessarily can be decoded into UTF8 [1].

To make things simple, this assumes that UTF8 strings (ustring in this code) can exist without them being valid UTF8 strings, but rather a collection of bytes.

[1] For example, older file systems can have filenames that made sense with a particular character set and are effectively not possible to map into strings.