Native AOT Build
pdsa is published as a Native AOT single executable per platform, with Akka.NET and Kùzu bundled. Each
platform is published on its own CI runner (host = target).
dotnet publish src/pdsa-cli -c Release -r win-x64 -p:Version=0.0.1 # Windowsdotnet publish src/pdsa-cli -c Release -r linux-x64 -p:Version=0.0.1 # Linuxdotnet publish src/pdsa-cli -c Release -r osx-arm64 -p:Version=0.0.1 # macOS (Apple Silicon)Making Akka.NET AOT-safe
Section titled “Making Akka.NET AOT-safe”Akka’s default configuration path goes through ConfigurationManager (app.config), which crashes under
AOT / single-file. The fix is to pass an explicit ConfigurationFactory.Default() so that path is never
taken — see AkkaPdsaEngine.
The rest of the stack
Section titled “The rest of the stack”- Kùzu is a prebuilt C++ library called via P/Invoke — inherently AOT-friendly, no managed reflection. See Kùzu Interop.
- OpenAI calls go through
HttpClientwith source-generated JSON (JsonSerializerContext), so no runtime reflection-based serialization is needed — safe under AOT. - New features follow the same rule: no reflection or dynamic code (e.g. the
claude -pprovider and the in-process viewer add onlyConsole/Task/Processand static JSON).
Why single-file matters
Section titled “Why single-file matters”Because everything is one native binary, distribution is trivial: npm fetches the right platform package and
you get a runnable pdsa with no .NET runtime install. See
Distribution (npm).