dawnwages / CSnakes

Home Page:https://tonybaloney.github.io/CSnakes/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CSnakes - a tool for embedding Python into .NET projects

Warning

This project is in prototype stage and the API is subject to change.

Documentation

NuGet Version NuGet Version

drawing

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.

image

Features

  • .NET Standard 2.0 (.NET 6-8)
  • Supports Python 3.9-3.13
  • Supports Virtual Environments and C-Extensions
  • Supports Windows, macOS, and Linux
  • 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 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.

About

https://tonybaloney.github.io/CSnakes/

License:MIT License


Languages

Language:C# 96.8%Language:Python 3.2%