RESTBED是一個全面,一致的編程模型,用於構建需要HTTP上無縫且安全的通信的應用程序,並能夠建模一系列業務流程,旨在針對移動,平板電腦,台式機和嵌入式生產環境。
這類似於將NGINX嵌入您的公司自己的產品線中。 - 解決方案建築師,Billrock Technology
| 特徵 | 描述 |
|---|---|
| Websocket | 單個TCP連接上的全雙工通信通道。 |
| 服務器範圍事件 | 服務器範圍的事件啟用了基於文本的事件數據的有效服務器到客戶流的有效傳輸 - EG,實時通知或服務器上生成的更新。 |
| 彗星 | 長時間的輪詢模型允許長期運行的HTTP請求將數據從服務器推向客戶端。 |
| SSL/TLS | 確保電線通信使您可以在線傳輸私人數據。 |
| 會話管理 | 創建自定義HTTP會話持久性和管理邏輯。 |
| HTTP管道 | 允許多個HTTP請求在單個TCP連接上發送的技術,而無需等待相應的響應。 |
| 路徑參數 | 用自定義路徑參數(例如資源鍵,修訂等)註釋URIS ... |
| 查詢參數 | 自動查詢參數解析。 |
| 標題過濾器 | 標題的過濾器傳入HTTP請求。 |
| 記錄 | 自定義創建日誌條目的方法和地點。 |
| 多路徑資源 | 為提高可讀性提供資源多路徑。 |
| 可自定義的方法 | 添加您自己的自定義HTTP方法。 |
| 壓縮 | 適應性解決任何形式的壓縮GZIP,Deflate等... |
| 編碼 | 適應性,以解決任何形式的編碼UTF-32,ASCII等... |
| 規則引擎 | 通過使用可讀的代碼單位處理傳入請求來降低複雜性。 |
| http/https | 內置可選SSL同行證書驗證的客戶功能。棄用 |
| IPv4/ipv6 | Internet協議版本4/6網絡支持。 |
| 建築學 | 異步單或多線程體系結構,能夠解決C10K問題。 |
| 轉換器 | 主數據類型的內置路徑,查詢和標題轉換。 |
| 驗證 | 單獨的服務和/或資源級認證。 |
| 錯誤處理 | 單獨的服務和/或資源級別錯誤處理。 |
| 地址綁定 | 將HTTP和/或HTTPS服務綁定到單獨的IP地址。 |
| 信號處理 | 捕獲OS生成的過程信號。 |
| 文件 | 涵蓋體系結構和API的高質量文檔。 |
| 遵守 | 靈活性以解決HTTP 1.0/1.1+合規性。 |
| 成熟 | 自2013年以來,安全,穩定並進行了廣泛的測試。 |
| 社區 | 活躍,充滿活力和充滿活力的開源社區。 |
| 支持 | Corvusoft提供商業支持。 |
# include < memory >
# include < cstdlib >
# include < restbed >
using namespace std ;
using namespace restbed ;
void post_method_handler ( const shared_ptr< Session > session )
{
const auto request = session-> get_request ( );
int content_length = request-> get_header ( " Content-Length " , 0 );
session-> fetch ( content_length, [ ]( const shared_ptr< Session > session, const Bytes & body )
{
fprintf ( stdout, " %.*s n " , ( int ) body. size ( ), body. data ( ) );
session-> close ( OK, " Hello, World! " , { { " Content-Length " , " 13 " } } );
} );
}
int main ( const int , const char ** )
{
auto resource = make_shared< Resource >( );
resource-> set_path ( " /resource " );
resource-> set_method_handler ( " POST " , post_method_handler );
auto settings = make_shared< Settings >( );
settings-> set_port ( 1984 );
settings-> set_default_header ( " Connection " , " close " );
Service service;
service. publish ( resource );
service. start ( settings );
return EXIT_SUCCESS;
}可以在此處找到更多深入的示例。要查看憤怒中使用的休息,請訪問Corvusoft的RestQ項目。
©2013-2020英國Corvusoft Limited。版權所有。
休息框架是雙重許可的;有關詳細信息,請參見許可證。
請聯繫[email protected],以獲取支持和許可選項,包括定制軟件開發,測試,設計諮詢,培訓,指導和代碼審查。
請通過問題跟踪器提交所有增強功能,建議和缺陷;或者,在標記為#restbed的Stackoverflow上提出一個問題。
git clone --recursive https://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_SSL = NO] [-DBUILD_TESTS = NO] ..
make install
make test現在,您將找到分佈子折疊器中安裝的所有必需組件。
| 選項 | 描述 | 預設 |
|---|---|---|
| build_ssl | 啟用SSL/TLS支持。 | 啟用 |
| build_ipc | 啟用Unix域插座。 | 禁用 |
| build_tests | 建立項目測試套件。 | 啟用 |
| build_devel_package | 將標題安裝到CMAKE_INSTALL_PREFIX中。 | 啟用 |
| build_shared_library | 產生共同的休息構建。 | 啟用 |
| build_static_library | 產生靜止的休息。 | 啟用 |
先決條件:Visual Studio 2022,Cmake,Git,Perl。
使用X64本機工具命令提示,如果需要,請先構建OpenSSL。
git clone --recursive https://github.com/corvusoft/restbed.git
cd restbeddependencyopenssl
perl Configure [no-]shared
nmake
nmake test如果選擇使用默認的OpenSL構建(共享),則需要在環境中包括安裝路徑。
set PATH = restbeddependencyopenssl; %PATH%如果選擇使用靜態OPENSL構建(無共享),則在鏈接應用程序代碼時需要包括其他依賴項;有關詳細信息,請參見OpenSSL項目。
target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )現在繼續進行以下休息構建指令。
mkdir restbedbuild
cd restbedbuild
cmake -G " Visual Studio 17 2022 " [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctest有關Microsoft Visual Studio 14 2015年的說明和更多詳細信息,請參閱功能#17。
您可以使用VCPKG依賴項管理器下載和安裝休息:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install restbedMicrosoft團隊成員和社區貢獻者保持最新的VCPKG中休息端口。如果該版本已過時,請在VCPKG存儲庫上創建問題或拉出請求。
該代碼庫旨在盡可能地進行自我記錄。我們提供了許多例子和測試套件,以幫助開發人員。
您可以在此處找到最新的設計和API文檔。
| 資源 | 要求 |
|---|---|
| 編譯器 | C ++ 14兼容或以上 |
| 作業系統 | BSD,Linux,Mac OSX,Windows,Raspbian |
| 里程碑 | 特徵 | 地位 |
|---|---|---|
| 0.0 | 異步HTTP服務 | 完全的 |
| 1.0 | HTTP 1.0合規性 | 完全的 |
| 2.0 | HTTP 1.1合規性 | 完全的 |
| 2.5 | 安全套接字層 | 完全的 |
| 2.5 | 同時網絡端口(HTTP/HTTPS) | 完全的 |
| 3.0 | 規則引擎 | 完全的 |
| 3.5 | 在服務盧布上安排任務 | 完全的 |
| 3.5 | 多線程服務功能 | 完全的 |
| 3.5 | 將服務與特定地址結合 | 完全的 |
| 3.5 | 會話管理 | 完全的 |
| 4.0 | HTTP客戶端 | 完全的 |
| 4.0 | 信號處理 | 完全的 |
| 4.5 | API文檔 | 完全的 |
| 4.5 | 網絡插座 | 完全的 |
| 5.0 | 客戶端SSL證書 | 發展 |
| 5.0 | 資源緩存 | 發展 |
| 5.0 | 運行時修改 | 發展 |
| 5.0 | HTTP 2合規性 | 發展 |
| 5.0 | 重構,減少,再利用 | 積極的 |
| 方法 | 描述 |
|---|---|
| 嘰嘰喳喳 | 向我們發推文您的問題和功能請求。 |
| [email protected] | 支持相關查詢。 |
| [email protected] | 與銷售有關的查詢。 |