# 3F/DllExport

.NET DllExport with .NET Core support (aka 3F/DllExport aka DllExport.bat)

Repository: https://github.com/3F/DllExport
Canonical: https://ross.abutalabs.com/products/dllexport
Language: C#
License: MIT
License Family: permissive
Topics: dllexport, ildasm, ilasm, coreclr, exported-functions, conari, pinvoke, tools, pe32, pe32-plus, dotnet-dllexport, getnutool, mvssln, coreclr-ilasm, hmsbuild
Last push: 2025-06-08T18:51:59+00:00

## Health v2 (maintenance only)
Score: 37/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 25, release rhythm 16, longevity 100
- inputs: {"age_days": 3722, "days_push": 451, "days_rel": 451, "gap_med": 103, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1097, forks 143 (observed 2026-08-28T04:03:34.724667+00:00)

## What it is
A .NET library and MSBuild tooling that lets C#/.NET assemblies export functions as unmanaged native exports (DllExport attribute), including .NET Core support. It works by post-build IL rewriting (ildasm/ilasm) so native hosts like C++, Java, Rust, or Python can call managed code via P/Invoke-style exports.

## Use cases
- export C# functions as native DLL exports for C++ callers
- call managed .NET code from Java, Rust, or Python via a DLL
- create unmanaged exports from .NET Core assemblies
- replace Robert Giesecke's UnmanagedExports with a maintained tool
- build mixed native/managed plugin DLLs

## When to choose
- you need .NET code exposed as native exported functions in a DLL
- you want .NET Core/CLR support for DLL exports
- you need a maintained alternative to UnmanagedExports

## When to avoid
- you only need to call native DLLs from .NET (plain P/Invoke suffices)
- you target non-Windows native hosting without IL-rewriting support
- you want a fully managed hosting API like DNNE or hostfxr instead of IL post-processing

## Facets
- artifact type: library
- maturity: active
- function: compiler, build-tool, developer-tools
- domain: developer-tools, cross-platform, programming-languages
- platform: windows, dotnet, cpp
- tags: dllexport, pinvoke, ilasm, ildasm, native-interop, unmanaged-exports, msbuild, net-core

## Member repositories
- 3F/DllExport (main) score 37

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:03:34.724667+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T06:46:20.942516+00:00, confidence not recorded.
  - readme: https://github.com/3F/DllExport (fetched 2026-08-28T04:03:34.724667+00:00, sha 6532ce3789f0)
- Data as of 2026-08-30T08:39:29.467469+00:00.
