今天盤點下9月份推薦的9個開源專案。
1、Pidgin:一個輕量級、快速且靈活的 C# 解析庫
Pidgin是基於C#的開源專案,是一個解析組合器庫,提供了一個高階別的宣告性工具來構建解析器,使得編寫解析器變得簡單而直觀。
1、輕量化與高效
Pidgin專注於提供輕量級的解決方案,旨在減少記憶體佔用和提高解析速度。透過精心設計的數據結構和演算法,Pidgin 能夠在不犧牲功能的前提下實現高效的解析。
2、靈活性
Pidgin 支援解析各種複雜的資料格式,不僅限於文字資料。由於其能夠處理任意型別的輸入令牌(tokens),Pidgin 可以用於解析二進制協議、標記化輸入等多種場景。
3、易於使用
與正規表示式相比,Pidgin 提供了更強大的解析能力,而與 ANTLR 等解析生成器相比,它又更簡單易用。
Pidgin 的 API 設計直觀,允許開發者以宣告性的方式定義語法規則,而無需編寫複雜的程式碼。
Star:896⭐
Sep 是一個高效能的 .NET CSV 解析器,具備快速、現代、簡潔且高效的數據處理能力。
**先進特性:**採用 .NET 7+ 和 C# 11+ 的先進特性,例如 Span、泛型數學介面(ISpanParsable/ISpanFormattable)、ref struct、ArrayPool 等,打造了一個現代且高效的實現方式。
**簡潔API:**提供了一個簡潔而富有表現力的 API,選項精簡,對輸入輸出的處理透明無隱藏。你看到什麼就得到什麼。例如,它預設不會自動處理引號的轉義/取消轉義。
**極速效能:**透過架構特定和跨平臺的 SIMD 向量化解析技術,支援 64/128/256/512 位路徑(如 AVX2、AVX-512(.NET 8.0+)、NEON),實現極速處理。利用 csFastFloat 快速解析浮點數。高效地逐行讀取或寫入資料,並有詳盡的基準測試驗證其效能。
**多執行緒加速:**透過高效的並行 CSV 解析技術,實現超快速度,比 CsvHelper 快達 35 倍。
**低記憶體佔用:**智慧高效的記憶體管理策略,在預熱後實現零記憶體分配,包括輕鬆讀取或寫入值陣列(如特徵資料)而無需重複分配記憶體。
**全面測試保障:**擁有廣泛的程式碼覆蓋率,專注於邊緣情況的測試,包括隨機模糊測試,確保數據處理的準確性和穩定性。
**跨平臺相容:**支援 .NET 支援的所有平臺和架構,100% 託管,採用現代 C# 編寫,程式碼優美。
**可修剪且相容 AOT/NativeAOT:**無反射或動態程式碼生成,確保完全可修剪且與提前編譯(Ahead-of-Time)相容。簡單的控制檯測試程式,可執行檔案體積小,僅幾 MB。
**實用主義:**遵循 RFC-4180 的核心原則,但在引用和行結束處理上採取實用主義方法。
Star:838⭐
**專案地址:**github.com/nietras/Sep
Atata Framework 是一個基於 Selenium WebDriver 的 C#/.NET Web UI 測試自動化全功能框架。
它使用流暢的頁面物件模式;具有內建的日誌記錄系統;包含獨特的觸發器功能;具有一組即用型元件。
該框架的關鍵思想之一是為定義和使用頁面物件提供簡單直觀的語法,頁面物件實現需要儘可能少的程式碼。
而且描述一個頁面物件類,無需任何方法,只需一組用屬性標記的屬性,這些屬性就代表頁面元件。
Star:490⭐
**專案地址:**github.com/atata-frame…
ChoETL 是一個開源的 .NET ETL(Extract, Transform, Load)框架。
它提供瞭解析和寫入多種檔案格式的能力,包括但不限於 CSV、FixedLength、XML、JSON、Key-Value、Parquet、YAML 和 Avro格式的檔案、資料庫。
Star:796⭐
**專案地址:**github.com/Cinchoo/Cho…
HtmlSanitizer 是一個強大的庫,它能夠審查和清理 HTML 內容,移除或轉義那些可能被用於 XSS 攻擊的標籤和屬性。
這個工具的核心功能是提供一個安全的方式來處理使用者提交的 HTML,確保這些內容在被渲染到網頁上之前是無害的。
Star:1.6K⭐
**專案地址:**github.com/mganss/Html…
CSCore是一個使用C#編寫的音訊庫,它提供了豐富的功能,從播放和錄製音訊,到解碼和編碼音訊流/檔案,再到實時處理音訊資料(如播放時應用自定義效果、建立視覺化等)。
CSCore 基於一個非常可擴充套件的架構,這使得你可以毫不費力地使其滿足你的需求。
支援的平臺:僅限 Windows,Linux 和 Mac 為實驗性支援。
Star:2.2K⭐
**專案地址:**github.com/filoe/cscor…
.Net Boxed該專案為.NET開發者提供了一套包含基本程式碼的專案模板,涵蓋了ASP.NET Core API、ASP.NET Core GraphQL、Microsoft Orleans以及NuGet Package的專案。
Star:3.4K⭐
**專案地址:**github.com/Dotnet-Boxe…
Html2OpenXml 是一個開源.Net庫,旨在將簡單或複雜的HTML內容轉換為OpenXml元件。
該專案始於2009年,最初是爲了將使用者評論轉換為Word文件而設計的
隨著時間的推移,Html2OpenXml 不斷髮展和完善,現在已經成為處理HTML到OpenXml轉換的強大工具。
Star:313⭐
**專案地址:**github.com/onizet/html…
tesseract是針對Tesseract-OCR(C++)引擎封裝的.NET版本,支援超過100種語言的文字識別,使得.NET開發者能夠輕鬆地利用Tesseract的強大功能,無需深入瞭解OCR的底層技術。
此專案缺點是,只能識別印刷的文字,針對手寫的需要自己訓練語言包。
Star:2.3K⭐
**專案地址:**github.com/charlesw/te…
- End -