持續集成狀態
分支 | 海灣合作委員會 7.5.0 和 9.4.0 | 視覺工作室 2019 | |
---|---|---|---|
鏗鏘9.0 | 視覺工作室 2022 | ||
Xcode 15.2 | 明GW-w64 | ||
Xcode 15.4 | |||
掌握 | |||
發展 |
下載
C++ 微服務專案是用於建立模組化和動態的服務導向的應用程式的元件集合。它基於 OSGi,但經過客製化以支援本機跨平台解決方案。
正確使用 C++ 微服務模式和概念可以使系統具有以下一個或多個屬性:
沒有,除了一個夠新的 C++ 編譯器。包含所有第三方函式庫依賴項,主要用於實作細節。
本函式庫利用 C++17 語言和函式庫功能,並可在許多不同的平台上編譯。
建議的絕對最低所需編譯器版本:
並非所有絕對最低編譯器版本都經過測試(如前所述)。我們測試並推薦以下編譯器:
建議的最低 CMake 版本:
對於透過 GitHub Actions 進行的所有 CI 構建,我們使用的 CMake 版本(以及其他提供的軟體的版本)由 GitHub 託管的運行器上提供的軟體決定。
有關跑步者使用的特定軟體版本的信息,請參閱以下資源:
以下是經過測試的編譯器/作業系統組合的清單:
C++ 微服務計畫最初是在德國癌症研究中心開發的。其原始碼作為 GitHub 專案託管。有關詳細的版權信息,請參閱頂級目錄中的 COPYRIGHT 文件。
此專案根據 Apache License v2.0 授權。
CppMicroServices.org 歡迎具有不同背景和廣泛經驗的開發人員。多元化、包容性的社群將創造出更多偉大的想法,提供更多獨特的視角,產出更多優秀的程式碼。我們的目標是讓 CppMicroServices 社群歡迎所有人。
為了明確我們對會員的期望,CppMicroServices 採用了contributor-covenant.org 定義的行為準則。該文件在許多開源社群中使用,我們相信它很好地闡明了我們的價值觀。
請參閱行為準則 <code-of-conduct>`以了解更多詳細資訊。
首先克隆專案儲存庫。需要注意的是,由於專案使用 git 子模組,因此您必須使用 --recursive 標誌來複製儲存庫。這也將克隆子模組並將它們放置在各自的目錄中。若要進一步了解 git 子模組的工作原理以及如何將它們複製到磁碟上現有的儲存庫中,請參閱 Git 的文檔。
本質上,C++ 微服務庫在託管生命週期之上為您提供了強大的動態服務註冊表。除此之外,該框架還管理稱為捆綁包的模組化邏輯單元,這些邏輯單元包含在共用程式庫或靜態庫中。庫中的每個套件都有一個關聯的cppmicroservices::BundleContext對象,透過該對象可以存取服務註冊表。
若要在登錄中查詢實作一個或多個特定介面的服務對象,程式碼如下所示:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void UseService (BundleContext context)
{
auto serviceRef = context. GetServiceReference <SomeInterface>();
if (serviceRef)
{
auto service = context. GetService (serviceRef);
if (service) { /* do something */ }
}
}
針對某個介面註冊服務物件如下所示:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void RegisterSomeService (BundleContext context, const std::shared_ptr<SomeInterface>& service)
{
context. RegisterService <SomeInterface>(service);
}
OSGi 服務模型也允許使用屬性註解服務並在服務尋找期間使用這些屬性。它還允許追蹤服務對象的生命週期。請參閱文件以取得更多範例和教學課程以及 API 參考。還有一篇關於 OSGi Lite for C++ 的部落格文章。
Git 儲存庫包含兩個永恆分支:master 和development。 master 分支包含生產品質程式碼,其 HEAD 指向最新發布的版本。開發分支是預設分支,包含目前的開發狀態。預設情況下,拉取請求針對開發分支。有關貢獻過程的詳細信息,請參閱CONTRIBUTING <contributing>`文件。
CppMicroServices 儲存庫在 .githooks 目錄中定義其 git hook。透過在 CMakeLists.txt 檔案中執行 git config core.hooksPath <path> 將該目錄設定為 git hooks 的目錄。
如果由於未安裝 clang-format 而導致 clang-format 預提交掛鉤失敗,請安裝它並將其放在路徑上。同樣,如果未安裝 git-clang-format,請執行相同操作。 git-clang-format 附帶 clang-format 的 LLVM 發行版。
如果這對您來說不可行,您可以在提交更改時指定 --no-verify。強烈建議不要這樣做,您必須提供無法格式化提交的理由。
我們保留拒絕任何格式不正確且未指定有效理由的拉取請求的權利。