Pure(第 2 版)
Pure 是一個 C# 指令碼工具。它為單檔案 C# 指令碼編寫提供了非常完善的支援,只需執行 pure script.cs 即可執行 C# 程式。
Pure 1 由 Charles Zhang 開發,最初以 MIT 許可證釋出(Github),並首發於 Charles Zhang 的 itch.io 頁面。Pure 2 經過重構以在 Divooka 生態系統中工作,目前為閉源。。
注意:與 Divooka 中的許多其他內容一樣,Pure 2 的原始碼將在我們有更多資源進行維護時公開。出於同樣的原因,該軟體雖然在設計時就考慮了跨平臺,但目前僅在 Windows 上經過了充分測試。
目前,你可以直接從我們的 Itch.io 頁面下載可執行檔案。

簡介
Pure 2 是一個輕量級的 C# 指令碼平臺,採用現代 C# 12 語法,並支援便捷地匯入 Nuget 包。Pure 基於 Roslyn。除了 .Net 執行時的基礎功能外,Pure 還提供了一些額外的庫,用於快速處理常見任務,並提供了便捷的指令碼編寫介面(REPL 和 Notebook),以及一個供大家分享程式碼片段的地方。Pure 2 在概念上與 Pure 相似,但在架構上將有很大不同——它直接構建在 Parcel NExT 的 Ama 執行時之上。Pure 專為非常短小的程式碼片段而設計,旨在更快地完成日常任務。
Pure 2 使用 C# 12,與 C# 中的頂級語句類似,並具有以下特性:
- 你可以在指令碼中間的任何位置定義型別和函式。
- Pure 有自己的包匯入行為(預設名稱空間 using 以及包尋找規則)。
- 預設全域作用域的 Math 函式,並預設 using System.IO 和 System.Linq
- 除了類和 C# 的所有其他常見結構外,還支援頂層函式和變數定義
- 讓簡單常見的事情變得更簡單
- 提供巨集,以支援基於文字的解析、檔案包含和模組匯入。
特性:
- 單個單詞的標準包名。一條命令即可匯入 NuGet 包,隨時按需呼叫包(通過
Import)。 - 與 Parcel 包和 Parcel 圖完全相容。
- 在使用
Include時,以及從命令列將指令碼檔案作為第一個參數直接執行時,Pure 使用PUREPATH尋找指令碼。 - Pure 非常輕量,並將始終是現有 Roslyn/.Net 執行時之上的一個薄層。
- CLI REPL;GUI Notebook。
安裝
最新版本需要 .Net 8。
你需要安裝 .Net 8 執行時和 ASP.Net Core 執行時。建議從以下頁面同時安裝 SDK 8.0.x(模組安裝工具所必需)、ASP.NET Core Runtime 8.0.x(一般使用所必需)和 .NET Desktop Runtime 8.0.x(在 Windows 上使用 Notebook 所必需):https://dotnet.microsoft.com/en-us/download/dotnet/8.0
YouTube 指南
如有問題,請前往問題頁面:https://github.com/Pure-the-Language/Pure/issues
備註
隨著 C# .Net 10 基於檔案的應用的到來,原生 .Net 正逐漸層得對指令碼編寫更加友好,參見 Andrew Lock 的文章。這基本上就是 Pure 所做的事情,只是 Pure 更廣泛地使用了特殊語法,而前者目前還沒有 REPL。Pure 將更加專注於與 Divooka 生態系統更便捷、更全面的整合,以及簡化的入口和指令碼語法,同時保持向後相容性。話雖如此,為了減少維護工作量,建議逐步淘汰 Pure(作為獨立 CLI),轉而使用官方 .Net SDK。
Pure 將繼續作為基於 Roslyn 的 Divooka 內建指令碼工具提供。
趣聞:請勿與 PURE(函數語言程式設計)和 PureScript 混淆。
資源
Pure 1
Pure 2(最新)
- 商店頁面
- 原始碼:無
- YouTube:@PureTheLanguage
開發日誌