Skip to main content
net8.0net9.0

Runtime for embedding Python code and libraries directly into .NET applications without REST, HTTP, or microservices. Supports Python 3.9-3.13, virtual environments, and cross-platform deployment.

Published
Aug 12, 2025
1y ago
Total Downloads
484.9K
484,865

Install

dotnet add package CSnakes.Runtime --version 2.0.0-beta.259
ProductVersions
.NET
net8.0net9.0

README

CSnakes - a tool for embedding Python code into .NET projects

Documentation

NuGet Version

CSnakes is a .NET Source Generator and Runtime that you can use to embed Python code and libraries into your C#.NET Solution at a performant, low-level without the need for REST, HTTP, or Microservices.

Check out the getting started guide or check out the demo solution to see more.

Features

Benefits

  • Uses native Python type hinting standards to produce clean, readable C# code with minimal boiler plate!
  • Integration between .NET and Python is done at the C-API, meaning strong compatibility between Python versions 3.8-3.13 and .NET 8-9.
  • Integration is low-level and high-performance.
  • CSnakes uses the CPython C-API and is compatible with all Python extensions.
  • Invocation of Python code and libraries is in the same process as .NET

CSnakes Demo Video

Click to watch the CSnakes demo video on YouTube

Example

CSnakes will generate a C#.NET class for any Python file in a project that is tagged as CSharp Analyzer Additional File (see Getting Started). All functions in that class with type annotations will be reflected to callable C# methods and an environment builder added to that module.

System diagram

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.

Changes from Previous Version

No structural changes between v2.0.0-beta.258 and v2.0.0-beta.259.

Adoption Assessment

Assess this package against its supported frameworks, license, maintenance signals and dependency graph before making it a project standard.

This version is marked prerelease. Validate its API and upgrade path before production use.No SPDX license expression is published. Review the license text and your organisation's policy before redistribution.Compatibility metadata lists 2 target frameworks; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.