PolySharp 1.0.0

This package has a SemVer 2.0.0 package version: 1.0.0+b9af408219f2b505e92bb1f2c280671bdd418849.
There is a newer version of this package available.
See the version list below for details.
dotnet add package PolySharp --version 1.0.0                
NuGet\Install-Package PolySharp -Version 1.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PolySharp" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PolySharp --version 1.0.0                
#r "nuget: PolySharp, 1.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install PolySharp as a Cake Addin
#addin nuget:?package=PolySharp&version=1.0.0

// Install PolySharp as a Cake Tool
#tool nuget:?package=PolySharp&version=1.0.0                

image

What is it? 🚀

PolySharp provides Source-only polyfills for C# language features, to easily use all runtime-agnostic features downlevel. The package is distributed as a source generator, so that it will automatically detect which polyfills are needed depending on the target framework and project in use: just add a reference to PolySharp, set your C# language version to latest, and have fun!

Documentation 📖

PolySharp includes the following polyfills:

  • Nullability attributes (for nullable reference types):
    • [AllowNull]
    • [DisallowNull]
    • [DoesNotReturn]
    • [DoesNotReturnIf]
    • [MaybeNull]
    • [MaybeNullWhen]
    • [MemberNotNull]
    • [MemberNotNullWhen]
    • [NotNull]
    • [NotNullIfNotNull]
    • [NotNullWhen]
  • Index and Range (see indices and ranges)
  • [UnscopedRef] (see low-level struct improvements)
  • Required members (see required modifier)
    • [RequiredMember]
    • [SetsRequiredMembers]
  • [CompilerFeatureRequired] (needed to support several features)
  • [IsExternalInit] (needed for init-only properties)
  • [SkipLocalsInit] (see docs)
  • Interpolated string handlers (see docs)
    • [InterpolatedStringHandler]
    • [InterpolatedStringHandlerArgument]
  • [CallerArgumentExpression] (see docs)

To leverage them, make sure to bump your C# language version. You can do this by setting the <LangVersion> MSBuild property in your project. For instance, by adding <LangVersion>11.0</LangVersion> (or your desired C# version) to the first <PropertyGroup> of your .csproj file. For more info on this, see here, but remember that you don't need to manually copy polyfills anymore: simply adding a reference to PolySharp will do this for you automatically.

Options ⚙️

PolySharp's generation can be configured through some MSBuild properties to set in consuming projects.

The following properties are available:

  • "PolySharpUsePublicAccessibilityForGeneratedTypes": changes the accessibility of generated types from internal to public.
There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (26)

Showing the top 5 NuGet packages that depend on PolySharp:

Package Downloads
AdaptiveCards.Templating

This library implements a JSON-to-JSON templating/data-binding engine. While it is designed to be used with Adaptive Cards, it is not dependent on Adaptive Cards and can therefore be used in many contexts and applications.

TinyLogger

Tiny extendable logger that plugins into Microsoft.Extensions.Logging

K4os.Xpovoc.Core

Simple job scheduler for .NET/.NET Core

Disarm

Pure-C# Disassembler for the ARM64 Instruction Set

aqua.tool.Validation

Provides C# source generated extension methods for argument validation.

GitHub repositories (126)

Showing the top 5 popular GitHub repositories that depend on PolySharp:

Repository Stars
files-community/Files
A modern file manager that helps users organize their files and folders.
restsharp/RestSharp
Simple REST and HTTP API Client for .NET
unoplatform/uno
Open-source platform for building cross-platform native Mobile, Web, Desktop and Embedded apps quickly. Create rich, C#/XAML, single-codebase apps from any IDE. Hot Reload included! 90m+ NuGet Downloads!!
lepoco/wpfui
WPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly.
serilog/serilog
Simple .NET logging with fully-structured events
Version Downloads Last updated
1.14.1 1,926,058 12/18/2023
1.14.0 45,046 11/28/2023
1.13.2 686,250 5/16/2023
1.13.1 99,246 4/6/2023
1.12.1 341,210 1/21/2023
1.10.0 399,740 1/15/2023
1.9.0 2,293 1/14/2023
1.8.3 12,688 1/9/2023
1.8.2 174 1/8/2023
1.8.1 23,358 11/22/2022
1.8.0 831 11/16/2022
1.7.1 28,984 10/29/2022
1.7.0 159 10/28/2022
1.6.0 345 10/26/2022
1.5.0 153 10/26/2022
1.4.0 155 10/25/2022
1.3.0 323 10/23/2022
1.2.0 145 10/22/2022
1.1.0 144 10/22/2022
1.0.1 144 10/22/2022
1.0.0 4,170 10/22/2022