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=1
Libraries/[Library]/*.h
) CoreFoundation.framework
CoreServices.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 上有一系列關於該專案的部落格文章。