NStack.Core
1.0.5
See the version list below for details.
dotnet add package NStack.Core --version 1.0.5
NuGet\Install-Package NStack.Core -Version 1.0.5
<PackageReference Include="NStack.Core" Version="1.0.5" />
paket add NStack.Core --version 1.0.5
#r "nuget: NStack.Core, 1.0.5"
// Install NStack.Core as a Cake Addin #addin nuget:?package=NStack.Core&version=1.0.5 // Install NStack.Core as a Cake Tool #tool nuget:?package=NStack.Core&version=1.0.5
NStack
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.
Version Numbers
Version info for NStack is managed by gitversion.
Install gitversion
:
dotnet tool install --global GitVersion.Tool
dotnet-gitversion
The project version (the nuget package and in NStack.dll
) is determined from the latest git tag
.
The format of version numbers is vmajor.minor.patch.build.height
and follows the Semantic Versioning rules.
To define a new version (e.g. with a higher major
, minor
, patch
, or build
value) tag a commit using git tag
:
git tag v1.3.4-beta.5 -a -m "Release v1.3.4 Beta 5"
dotnet-gitversion /updateprojectfiles
dotnet build -c Release
DO NOT COMMIT AFTER USING /updateprojectfiles
!
Doing so will update the .csproj
files in your branch with version info, which we do not want.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.ValueTuple (>= 4.5.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on NStack.Core:
Package | Downloads |
---|---|
M5x.Tty
Package Description |
|
guit
Library to build plugins for dotnet-guit. |
|
PortedFastBertTokenizer
Fast and memory-efficient WordPiece tokenizer as it is used by BERT and others. Tokenizes text for further processing using NLP/language models. This fork only supports .NET Standard 2.1 |
GitHub repositories (4)
Showing the top 4 popular GitHub repositories that depend on NStack.Core:
Repository | Stars |
---|---|
PowerShell/ConsoleGuiTools
Modules that mix PowerShell and GUIs/CUIs!
|
|
reactiveui/ReactiveMvvm
Cross-platform ReactiveUI sample app built for a talk at MSK .NET conf.
|
|
x2bool/radish
Desktop client for Redis (Windows, MacOS, Linux)
|
|
migueldeicaza/XtermSharp
XTerm emulator as a .NET library
|
Version | Downloads | Last updated |
---|---|---|
1.1.1 | 83,320 | 1/22/2024 |
1.1.0 | 127 | 1/22/2024 |
1.0.7 | 132,897 | 12/5/2022 |
1.0.5 | 1,910 | 11/4/2022 |
1.0.3 | 70,967 | 9/19/2022 |
0.17.1 | 78,647 | 5/26/2022 |
0.16.0 | 397,271 | 12/8/2020 |
0.15.0 | 3,215 | 10/30/2020 |
0.14.0 | 95,730 | 3/30/2020 |
0.13.0 | 1,979 | 2/29/2020 |
0.12.0 | 5,715 | 6/4/2018 |
0.11.0 | 81,141 | 4/24/2018 |
0.10.0 | 1,090 | 4/22/2018 |
0.9.0 | 1,015 | 4/22/2018 |
0.8.0 | 3,850 | 2/7/2018 |
0.7.0 | 1,206 | 1/24/2018 |
0.6.0 | 1,006 | 1/23/2018 |
0.5.0 | 1,013 | 1/23/2018 |
0.4.0 | 1,121 | 1/4/2018 |
0.3.0 | 1,000 | 6/3/2017 |
0.2.0 | 982 | 6/3/2017 |
0.1.0 | 980 | 6/2/2017 |
Version 1.0.3
* Fixes #83. Ustring ConsoleWidth must return the exactly character size or zero and not Rune.ColumnWidth
Version 1.0.3
* Fixes #79. Needed to add unit test for equal and not equal operators.
Version 1.0.1 - Moderinized API doc generation and now using gitflow
* Fixes #59. Automatically generate API docs via github action
* Fixes #61. ustring.IsNullOrEmpty doesn't work the same way as the string.IsNullOrEmpty method.
Previous Versions:
0.17: Fork by @tig modernize build/deploy and help publishing newer versions. No functional changes.
0.16: Fixes issue #51 (chess symbols);
0.15: Fixes to MaxRune; ColumnWidth differentiates between non-printable and nul characters; Rune has a constructor from two surrogate pairs; contributions by @BDisp;
0.14: Upgrade the NetStandard dependencies;
0.13: Fixes ustring.Map() and Lower(); Extends Rune.IsValid to match Go; add Rune.ExpectedSizeFromFirstByte() plus a bug fix;
stack
0.12: Rebuild with an older Roslyn, to prevent regressions on Xamarin.
0.10: Merged some changes from upstream.
0.9:
Added ustring.ColumnWidth to return number of columns that a ustring takes in a console.
0.8:
* Renamed some methods to match the equivalent methods in Char.
* Introduced Substring (int start)
* Introduced difference between this [int start, int end] and this [int start, object end] the latter used to mean "until the end", replacing '0' as the previous value for "until the end".
* Introduced new method in Rune to measure the width in columns for console applications.