CSnakes.Runtime
1.0.21
dotnet add package CSnakes.Runtime --version 1.0.21
NuGet\Install-Package CSnakes.Runtime -Version 1.0.21
<PackageReference Include="CSnakes.Runtime" Version="1.0.21" />
paket add CSnakes.Runtime --version 1.0.21
#r "nuget: CSnakes.Runtime, 1.0.21"
// Install CSnakes.Runtime as a Cake Addin #addin nuget:?package=CSnakes.Runtime&version=1.0.21 // Install CSnakes.Runtime as a Cake Tool #tool nuget:?package=CSnakes.Runtime&version=1.0.21
CSnakes - a tool for embedding Python into .NET projects
[!WARNING]
This project is in prototype stage and the API is subject to change.
<img src="docs/res/logo.jpeg" alt="drawing" width="200"/>
CSnakes is a .NET Source Generator and Runtime that you can use to embed Python code and libraries into your .NET Solution without the need for REST, HTTP, or Microservices.
Features
- Supports .NET Standard 8-9
- Supports Python 3.9-3.13
- Supports Virtual Environments and C-Extensions
- Supports Windows, macOS, and Linux
- Tight integration between NumPy ndarrays and Spans, 2D Spans and TensorSpans (.NET 9)
- Uses Python's C-API for fast invocation of Python code directly in the .NET process
- Uses Python type hinting to generate function signatures with .NET native types
- Supports CPython 3.13 "free-threading" mode
- Supports nested sequence and mapping types (
tuple
,dict
,list
) - Supports default values
Examples
Given the following Python file called example.py
def hello_world(name: str, age: int) -> str:
return f"Hello {name}, you must be {age} years old!"
CSnakes will generate a static .NET class called Example
with the function:
public class Example {
public static string HelloWorld(string name, long age) {
...
}
}
When called, HelloWorld()
will invoke the Python function from example.py
using Python's C-API and return native .NET types.
FAQ
See the FAQ for more information.
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 is compatible. |
-
net8.0
- CommunityToolkit.HighPerformance (>= 8.3.0)
- Microsoft.Extensions.Hosting (>= 8.0.0)
- System.Text.Json (>= 8.0.5)
-
net9.0
- CommunityToolkit.HighPerformance (>= 8.3.0)
- Microsoft.Extensions.Hosting (>= 9.0.0-rc.2.24473.5)
- System.Numerics.Tensors (>= 9.0.0-rc.2.24473.5)
- System.Text.Json (>= 9.0.0-rc.2.24473.5)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on CSnakes.Runtime:
Package | Downloads |
---|---|
Glidergun
Package Description |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on CSnakes.Runtime:
Repository | Stars |
---|---|
tonybaloney/CSnakes
Embed Python in .NET
|
Version | Downloads | Last updated |
---|---|---|
1.0.21 | 1,356 | 10/15/2024 |
1.0.21-beta.115 | 46 | 11/2/2024 |
1.0.21-beta.114 | 43 | 10/30/2024 |
1.0.21-beta.113 | 47 | 10/29/2024 |
1.0.21-beta.112 | 43 | 10/29/2024 |
1.0.21-beta.111 | 43 | 10/29/2024 |
1.0.21-beta.110 | 46 | 10/29/2024 |
1.0.21-beta.109 | 57 | 10/22/2024 |
1.0.21-beta.108 | 66 | 10/20/2024 |
1.0.21-beta.107 | 68 | 10/20/2024 |
1.0.21-beta.106 | 66 | 10/20/2024 |
1.0.21-beta.105 | 100 | 10/18/2024 |
1.0.21-beta.104 | 49 | 10/17/2024 |
1.0.21-beta.103 | 50 | 10/17/2024 |
1.0.21-beta.102 | 47 | 10/15/2024 |
1.0.20 | 442 | 10/11/2024 |
1.0.20-beta.101 | 49 | 10/15/2024 |
1.0.20-beta.100 | 53 | 10/15/2024 |
1.0.20-beta.99 | 56 | 10/14/2024 |
1.0.20-beta.98 | 55 | 10/14/2024 |
1.0.20-beta.97 | 48 | 10/14/2024 |
1.0.20-beta.96 | 51 | 10/11/2024 |
1.0.19-beta.95 | 66 | 10/11/2024 |
1.0.19-beta.94 | 87 | 10/11/2024 |
1.0.19-beta.93 | 63 | 10/11/2024 |
1.0.19-beta.92 | 56 | 10/11/2024 |
1.0.19-beta.91 | 78 | 10/11/2024 |
1.0.19-beta.90 | 50 | 10/11/2024 |
1.0.19-beta.89 | 55 | 10/11/2024 |
1.0.18 | 802 | 9/23/2024 |
1.0.18-beta.88 | 58 | 10/11/2024 |
1.0.18-beta.87 | 46 | 10/10/2024 |
1.0.18-beta.86 | 59 | 10/7/2024 |
1.0.18-beta.85 | 49 | 10/6/2024 |
1.0.18-beta.84 | 53 | 10/6/2024 |
1.0.18-beta.83 | 59 | 9/25/2024 |
1.0.18-beta.82 | 48 | 9/24/2024 |
1.0.18-beta.80 | 49 | 9/23/2024 |
1.0.17 | 1,407 | 8/30/2024 |
1.0.17-beta.79 | 52 | 9/23/2024 |
1.0.17-beta.78 | 49 | 9/23/2024 |
1.0.17-beta.77 | 39 | 9/19/2024 |
1.0.17-beta.73 | 62 | 9/17/2024 |
1.0.17-beta.72 | 57 | 9/17/2024 |
1.0.17-beta.71 | 60 | 9/17/2024 |
1.0.17-beta.70 | 59 | 9/17/2024 |
1.0.17-beta.69 | 58 | 9/17/2024 |
1.0.17-beta.68 | 59 | 9/17/2024 |
1.0.17-beta.67 | 56 | 9/16/2024 |
1.0.17-beta.66 | 58 | 9/10/2024 |
1.0.17-beta.65 | 58 | 9/10/2024 |
1.0.17-beta.64 | 61 | 9/5/2024 |
1.0.17-beta.63 | 54 | 9/4/2024 |
1.0.17-beta.62 | 62 | 9/4/2024 |
1.0.17-beta.61 | 54 | 8/30/2024 |
1.0.17-beta.60 | 55 | 8/30/2024 |
1.0.16 | 629 | 8/21/2024 |
1.0.16-beta.59 | 60 | 8/30/2024 |
1.0.16-beta.58 | 49 | 8/29/2024 |
1.0.16-beta.57 | 52 | 8/28/2024 |
1.0.16-beta.56 | 58 | 8/28/2024 |
1.0.16-beta.55 | 62 | 8/28/2024 |
1.0.16-beta.54 | 80 | 8/23/2024 |
1.0.16-beta.53 | 75 | 8/23/2024 |
1.0.16-beta.52 | 76 | 8/22/2024 |
1.0.16-beta.51 | 73 | 8/21/2024 |
1.0.15-beta.50 | 79 | 8/21/2024 |
1.0.15-beta.49 | 101 | 8/21/2024 |
1.0.15-beta.48 | 92 | 8/21/2024 |
1.0.15-beta.47 | 87 | 8/21/2024 |
1.0.15-beta.46 | 66 | 8/21/2024 |
1.0.13 | 385 | 8/15/2024 |
1.0.13-beta.36 | 75 | 8/17/2024 |
1.0.13-beta.35 | 71 | 8/16/2024 |
1.0.13-beta.34 | 74 | 8/16/2024 |
1.0.13-beta.33 | 79 | 8/16/2024 |
1.0.13-beta.32 | 75 | 8/15/2024 |
1.0.13-beta.31 | 70 | 8/15/2024 |
1.0.11 | 119 | 8/14/2024 |
1.0.11-beta.30 | 74 | 8/15/2024 |
1.0.11-beta.29 | 72 | 8/15/2024 |
1.0.11-beta.28 | 69 | 8/14/2024 |
1.0.11-beta.27 | 71 | 8/14/2024 |
1.0.11-beta.26 | 73 | 8/14/2024 |
1.0.10 | 128 | 8/14/2024 |
1.0.10-beta.25 | 74 | 8/14/2024 |
1.0.10-beta.24 | 66 | 8/14/2024 |
1.0.9 | 117 | 8/14/2024 |
1.0.9-beta.23 | 77 | 8/14/2024 |
1.0.8 | 123 | 8/13/2024 |
1.0.8-beta.22 | 72 | 8/13/2024 |
1.0.8-beta.21 | 74 | 8/13/2024 |
1.0.8-beta.20 | 77 | 8/13/2024 |
1.0.8-beta.19 | 73 | 8/13/2024 |
1.0.8-beta.18 | 73 | 8/13/2024 |
1.0.8-beta.17 | 89 | 8/13/2024 |
1.0.7-beta.16 | 69 | 8/6/2024 |
1.0.6 | 90 | 8/5/2024 |
1.0.4-beta.14 | 52 | 8/3/2024 |
1.0.4-beta.13 | 47 | 8/3/2024 |
1.0.4-beta.12 | 49 | 8/3/2024 |
1.0.4-beta.11 | 62 | 8/1/2024 |
1.0.4-beta.10 | 60 | 8/1/2024 |
1.0.3-beta.8 | 55 | 8/1/2024 |
1.0.3-beta.7 | 65 | 8/1/2024 |
1.0.2 | 99 | 7/26/2024 |
1.0.1 | 93 | 7/26/2024 |
1.0.0 | 104 | 7/25/2024 |