SharpMetal 1.0.0-preview12

This is a prerelease version of SharpMetal.
dotnet add package SharpMetal --version 1.0.0-preview12
NuGet\Install-Package SharpMetal -Version 1.0.0-preview12
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="SharpMetal" Version="1.0.0-preview12" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SharpMetal --version 1.0.0-preview12
#r "nuget: SharpMetal, 1.0.0-preview12"
#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 SharpMetal as a Cake Addin
#addin nuget:?package=SharpMetal&version=1.0.0-preview12&prerelease

// Install SharpMetal as a Cake Tool
#tool nuget:?package=SharpMetal&version=1.0.0-preview12&prerelease

Why?

The .NET ecosystem is very much lacking a good Metal binding package. Existing options are outdated or don't integrate well into cross-platform projects. This project aims to be a complete, up-to-date package that stays true to the original API while making the API easy to use and integrate into C#.

What can you make with it?

Progress is underway to build a full set of working reimplementations of the metal-cpp samples. Thanks to the generator, the entire Metal API, from compute shaders to raytracing, should be available, although specific things may take further tweaking.

I want to contribute!

Wonderful! SharpMetal is built with .NET 8.0, and follows a couple of specific guidelines:

  • Block Namespaces
  • Source Generated P/Invokes
    • LibraryImport not DllImport
  • Use C# types where possible
    • NSIntegerlong
    • NSUIntegerulong
  • Mark structs and classes with SupportedOSPlatform attribute
  • SharpMetal is built for macOS primarily, so when there are platform-specific differences, use the macOS option
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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-preview12 79 3/20/2024
1.0.0-preview11 116 3/18/2024
1.0.0-preview10 66 3/4/2024