SaneCppLibraries
2024-11
Sane C++ Libraries是一組適用於 macOS、Windows 和 Linux 的 C++ 平台抽象化函式庫。
原則:
✅ 快速編譯時間
✅ 無浮腫
✅ 簡單易讀的程式碼
✅ 易於集成
⛔️ 無 C++ 標準函式庫/異常/RTTI
⛔️ 無第三方依賴(首選作業系統 API)
請造訪文件網站以取得更多資訊。
| 圖書館 | 描述 |
|---|---|
| 演算法 | ?將放置模板演算法的佔位符庫 |
| 非同步 | ?非同步 I/O(檔案、套接字、計時器、進程、fs 事件、執行緒喚醒) |
| 非同步流 | ?從非同步來源到目標同時讀取、轉換和寫入資料。 |
| 建造 | ?最小建構系統,其中建構以 C++ 描述 |
| 貨櫃 | ?通用容器(SC::Vector、SC::SmallVector、SC::Array 等) |
| 文件 | ?同步磁碟檔案 I/O |
| 檔案系統 | ?針對 { 檔案和目錄 } 的檔案系統操作 { 存在、複製、刪除 } |
| 檔案系統迭代器 | ?枚舉給定路徑內的檔案和目錄 |
| 檔案系統觀察者 | ?檔案和目錄的通知{新增、刪除、重新命名、修改} |
| 基礎 | ?基本型別、斷言、限制、函數、跨度、結果、標記聯合 |
| 散列 | ?計算位元組流的MD5 、 SHA1或SHA256雜湊值 |
| HTTP | ? HTTP 解析器、客戶端和伺服器 |
| 外掛 | ?帶有熱重載的基於最小依賴的插件系統 |
| 流程 | ?建立子進程並連結它們(也可與非同步庫一起使用) |
| 反射 | ?在編譯時描述 C++ 類型以進行序列化 |
| 序列化二進位 | ?使用反射與二進位格式進行序列化 |
| 序列化文字 | ?使用反射序列化為文字格式 (JSON) 或從文字格式 (JSON) 序列化 |
| 插座 | ?同步套接字網路和 DNS 查找 |
| 弦樂 | ?字串格式化/轉換/操作(ASCII / UTF8 / UTF16) |
| 測試 | ?所有其他庫使用的簡單測試框架 |
| 螺紋加工 | ?原子、線程、線程池、互斥體、條件變量 |
| 時間 | ?時間處理(相對、絕對、高解析度) |
每個庫都用顏色編碼來表示其狀態:
一些庫有 C 綁定
| 裝訂 | 描述 |
|---|---|
| sc_hashing | 哈希庫的綁定 |
庫可以按原樣使用,將單個文件添加到您的專案中,而不需要任何建置系統。
請參閱建置(使用者)以僅使用該庫
不久:
SC_COMPILER_ENABLE_STD_CPP=1Libraries/[Library]/*.h ) CoreFoundation.frameworkCoreServices.framework libdl ( -ldl )libpthread ( -lpthread )SCExample 展示了 Sane C++ 函式庫與 Dear ImGui 和 sokol 函式庫的整合(請參閱範例頁)。
測試是使用自託管 SC::Build 專案產生器建構的,描述了 C++ 中的建置。
檢查建置(貢獻者)以運行測試。
@pagghiu.bsky.social@pagghiu_@pagghiu另外,我也正在閱讀以下不和諧內容:
@Pagghiu或只是 DM,英語和義大利語都可以)@Pagghiu或只是DM)請花一些時間閱讀原則和編碼風格。
之後您可以閱讀 CONTRIBUTING.md 指南。
Sane C++ 程式庫根據 MIT 許可證獲得許可,請參閱 LICENSE.txt 以了解更多資訊。
在這個 YouTube 頻道上有一些影片展示了開發過程的一些細節。
在 Sane Coding Blog 上有一系列關於該專案的部落格文章。