SmolStr 1.0.0
dotnet add package SmolStr --version 1.0.0
NuGet\Install-Package SmolStr -Version 1.0.0
<PackageReference Include="SmolStr" Version="1.0.0" />
<PackageVersion Include="SmolStr" Version="1.0.0" />
<PackageReference Include="SmolStr" />
paket add SmolStr --version 1.0.0
#r "nuget: SmolStr, 1.0.0"
#:package SmolStr@1.0.0
#addin nuget:?package=SmolStr&version=1.0.0
#tool nuget:?package=SmolStr&version=1.0.0
SmolStr
Small-string optimized string type for .NET
Installation
SmolStr requires .NET Standard 8 or higher. Packages are available on NuGet.
$ dotnet package add SmolStr
Usage
using SmolStr;
SmallString str1 = "hello!";
Console.WriteLine(str1.AsSpan());
SmallString str2 = SmallString.Create($"hello {DateTime.Now.Year}");
Console.WriteLine(str2.AsSpan()); // hello 2026
Design
SmallString, like System.String, handles UTF-16 encoded strings, but is optimized for smaller strings. SmallString is a struct that stores strings up to SmallString.MaxInlineSize = 16 characters on the stack, and longer strings on the heap.
SmallString has a size of 40 bytes and its general structure is as follows:
unsafe struct SmallString
{
object? obj;
fixed char data[MaxInlineLength];
}
Due to .NET runtime limitations, managed references and other values cannot be overlapped in [FieldOffset]. Therefore, the size of the obj field cannot be removed. Instead, a boxed byte object representing the length of small strings is placed here.
License
This library is under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 72 | 3/13/2026 |