A magic script-based C# task runner for .NET Core that uses plain C# code as its DSL.
Nake is a task runner and build automation tool for .NET that uses plain C# code as its domain-specific language (DSL). It allows developers to define and execute tasks—such as building, testing, and deploying applications—using standard C# syntax, eliminating the need to learn a custom scripting language. Built on Roslyn, it supports modern C# features and integrates seamlessly with the .NET ecosystem.
.NET developers and teams looking for a lightweight, code-centric alternative to XML-based build systems or other task runners that require custom DSLs. It's particularly suited for those who prefer writing build logic in C#.
Developers choose Nake because it leverages their existing C# knowledge, offers the full power of the language (including latest features), and provides a clean, minimalistic approach to task automation without the overhead of a custom DSL.
Magic script-based C# task runner for .NET Core
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Tasks are defined using standard C# syntax, eliminating the need to learn a custom domain-specific language. The README shows examples like `[Nake] void Welcome()` where methods are directly runnable from the command line.
Built on Roslyn, it supports latest C# features such as string interpolation and async/await. For instance, the syntax cheatsheet includes `await $"docker rm {cid}"` for executing shell commands.
Scripts can reference NuGet packages directly using dotnet-script resolution, as shown with `#r "nuget: Newtonsoft.Json"`. This enables easy use of external libraries without separate configuration.
Steps with run-once semantics allow dependencies via plain method calls, giving developers control over execution order. The README demonstrates this with `Clean();` called inside `Build()` without special syntax.
It requires .NET 8.0 SDK or later, which can be a barrier for projects stuck on older versions or in environments with versioning constraints, as stated in the prerequisites.
Features like environment variable inlining (`$var$` syntax) and step semantics add complexity, and the README admits that debugging requires the `--debug` flag with Visual Studio, indicating a steeper learning curve.
Compared to tools like Cake or MSBuild, Nake has a smaller community and fewer built-in integrations, which might limit support and available plugins for complex enterprise workflows.