| สาขา | Linux / Windows | ความครอบคลุม | เอกสาร | เมทริกซ์ |
|---|---|---|---|---|
| ผู้เชี่ยวชาญ | ||||
| พัฒนา |
Beast เป็นห้องสมุดส่วนหัวเฉพาะ C ++ ที่ทำหน้าที่เป็นรากฐานสำหรับการเขียนห้องสมุดเครือข่ายแบบทำงานร่วมกันได้โดยการจัดหา HTTP/1 ระดับต่ำ, WebSocket และประเภทคำศัพท์โปรโตคอลเครือข่าย และอัลกอริทึมโดยใช้แบบจำลองอะซิงโครนัสที่สอดคล้องกันของ ASIO
ห้องสมุดนี้ออกแบบมาสำหรับ:
สมมาตร: อัลกอริทึมเป็นบทบาทที่ไม่เชื่อเรื่องพระเจ้า สร้างลูกค้าเซิร์ฟเวอร์หรือทั้งสองอย่าง
ใช้งานง่าย: boost.asio ผู้ใช้จะเข้าใจสัตว์ร้ายทันที
ความยืดหยุ่น: ผู้ใช้ทำการตัดสินใจที่สำคัญเช่นบัฟเฟอร์หรือการจัดการเธรด
ประสิทธิภาพ: สร้างแอปพลิเคชันที่จัดการการเชื่อมต่อหลายพันครั้งหรือมากกว่า
พื้นฐานสำหรับสิ่งที่เป็นนามธรรมเพิ่มเติม ส่วนประกอบมีความเหมาะสมสำหรับการสร้าง
| CPPCON 2018 | Bishop Fox 2018 |
|---|---|
| CPPCON 2017 | CPPCAST 2017 | CPPCON 2016 |
|---|---|---|
ซอฟต์แวร์นี้อยู่ในการเปิดตัวอย่างเป็นทางการครั้งแรก อินเทอร์เฟซอาจเปลี่ยนแปลงในการตอบสนองต่อความคิดเห็นของผู้ใช้ สำหรับการเปลี่ยนแปลงล่าสุดให้ดูการเปลี่ยนแปลง
ห้องสมุดนี้มีไว้สำหรับโปรแกรมเมอร์ที่คุ้นเคยกับ boost.asio ผู้ใช้ที่ต้องการใช้อินเทอร์เฟซแบบอะซิงโครนัสควรทราบวิธีการสร้างโปรแกรมเครือข่ายพร้อมกันโดยใช้การโทรกลับหรือ coroutines
เมื่อใช้ Microsoft Visual C ++ จำเป็นต้องใช้ Visual Studio 2017 หรือใหม่กว่า
จำเป็นต้องมีหนึ่งในองค์ประกอบเหล่านี้เพื่อสร้างการทดสอบและตัวอย่าง:
สัตว์ร้ายเป็นเพียงส่วนหัวเท่านั้น หากต้องการใช้เพียงเพิ่ม #include line ที่จำเป็นในไฟล์ต้นฉบับของคุณเช่นนี้:
# include < boost/beast.hpp >หากคุณใช้ coroutines คุณจะต้องเชื่อมโยงกับห้องสมุด boost.coroutine กรุณาเยี่ยมชมเอกสาร Boost สำหรับคำแนะนำเกี่ยวกับวิธีการทำสิ่งนี้สำหรับระบบบิลด์ของคุณโดยเฉพาะ
หากต้องการใช้การเปิดตัวอย่างเป็นทางการล่าสุดของ Beast เพียงแค่รับการกระจายตัวล่าสุดและทำตามคำแนะนำในการรวมเข้ากับสภาพแวดล้อมการพัฒนาของคุณ หากคุณต้องการสร้างตัวอย่างและการทดสอบหรือหากคุณต้องการดูตัวอย่างการเปลี่ยนแปลงและคุณสมบัติที่จะเกิดขึ้นขอแนะนำให้โคลน "Boost Superproject" และทำงานกับ Beast "In-tree" (หมายถึงไดเรกทอรีย่อย Libs/Beast ของ Superproject)
ที่เก็บอย่างเป็นทางการมีสาขาต่อไปนี้:
มาสเตอร์ นี่ถือสแน็ปช็อตล่าสุดด้วยรหัสที่เป็นที่รู้จักกันว่ามีเสถียรภาพ
การพัฒนา สิ่งนี้ถือสแน็ปช็อตล่าสุด มันอาจมีรหัสที่ไม่เสถียร
แต่ละสาขาเหล่านี้ต้องการสาขา Boost ที่สอดคล้องกันและโครงการย่อยทั้งหมด ตัวอย่างเช่นหากคุณต้องการใช้ Beast เวอร์ชัน Master Branch คุณควรโคลน Boost Superproject เปลี่ยนไปใช้สาขา หลัก ใน SuperProject และรับไลบรารี Boost ทั้งหมดที่สอดคล้องกับสาขานั้นรวมถึง Beast
ในการโคลน SuperProject ในพื้นที่และเปลี่ยนเป็นการใช้ไดเรกทอรีของโครงการหลัก:
git clone --recursive https://github.com/boostorg/boost.git
cd boost
"BJAM" ใช้เพื่อสร้างสัตว์ร้ายและห้องสมุดเพิ่ม บนระบบที่ไม่ใช่หน้าต่างใช้คำสั่งนี้เพื่อสร้าง BJAM:
./bootstrap.sh
จากบรรทัดคำสั่ง windows สร้าง bjam โดยใช้คำสั่งนี้:
.BOOTSTRAP.BAT
การทดสอบอาคารและตัวอย่างต้องมีการติดตั้ง OpenSSL หากมีการติดตั้ง OpenSSL ในตำแหน่งที่ไม่ใช่ระบบคุณจะต้องคัดลอกไฟล์ user-config.jam ลงในไดเรกทอรีบ้านของคุณและตั้งค่าตัวแปรสภาพแวดล้อม OPENSSL_ROOT ไปยังเส้นทางที่มีการติดตั้ง OpenSSL
หากติดตั้งลงในไดเรกทอรีระบบ OpenSSL จะพบและใช้งานโดยอัตโนมัติ
sudo apt install libssl-dev แทนที่ path ในตัวอย่างโค้ดต่อไปนี้ด้วยเส้นทางที่คุณติดตั้ง VCPKG เป็น ตัวอย่างสมมติว่าบิลด์ 32 บิตหากคุณสร้างเวอร์ชัน 64 บิตแทนที่ x32-windows ด้วย x64-windows ในเส้นทาง
vcpkg install openssl --triplet x32-windows
SET OPENSSL_ROOT = pathinstalledx32-windowsvcpkg install openssl -- triplet x32 - windows
$ env: OPENSSL_ROOT = " pathx32-windows "vcpkg.exe install openssl --triplet x32-windows
export OPENSSL_ROOT=path/x32-windowsใช้ Brew:
brew install openssl
export OPENSSL_ROOT= $( brew --prefix openssl )
# install bjam tool user specific configuration file to read OPENSSL_ROOT
# see https://www.bfgroup.xyz/b2/manual/release/index.html
cp ./libs/beast/tools/user-config.jam $HOMEตรวจสอบให้แน่ใจว่าเครื่องมือ BJAM (เรียกอีกอย่างว่า "B2") มีอยู่ในเส้นทางที่เชลล์ของคุณใช้เพื่อค้นหา executables โครงการ Beast ตั้งอยู่ใน "Libs/Beast" เมื่อเทียบกับไดเรกทอรีที่มี Boot Superproject ในการสร้างการทดสอบสัตว์เดรัจฉานตัวอย่างและเอกสารใช้คำสั่งเหล่านี้:
export PATH=$PWD:$PATH
b2 -j2 libs/beast/test cxxstd=11 # bjam must be in your $PATH
b2 -j2 libs/beast/example cxxstd=11 # "-j2" means use two processors
b2 libs/beast/doc # Doxygen and Saxon are required for this
คำแนะนำเพิ่มเติมสำหรับการกำหนดค่าการใช้และการสร้างไลบรารีใน SuperProject อาจพบได้ใน Boost Wiki
CMAKE อาจใช้ในการสร้างโซลูชัน Visual Studio ที่ดีมากและชุดไฟล์ Project Visual Studio โดยใช้คำสั่งเหล่านี้:
cmake -G "Visual Studio 17 2022" -A win32 -B bin -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE="C:/boost/libs/beast/cmake/toolchains/msvc.cmake"
cmake -G "Visual Studio 17 2022" -A x64 -B bin64 -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_CHAINLOAD_TOOLCHAIN_FILE="C:/boost/libs/beast/cmake/toolchains/msvc.cmake"
ไฟล์ในพื้นที่เก็บข้อมูลถูกวางไว้:
./
bin/ Create this to hold executables and project files
bin64/ Create this to hold 64-bit Windows executables and project files
doc/ Source code and scripts for the documentation
include/ Where the header files are located
example/ Self contained example programs
meta/ Metadata for Boost integration
test/ The unit tests for Beast
tools/ Scripts used for CI testing
ตัวอย่างเหล่านี้สมบูรณ์โปรแกรมในตัวเองที่คุณสามารถสร้างและดำเนินการด้วยตัวเอง (อยู่ในไดเรกทอรี example )
https://www.boost.org/doc/libs/develop/libs/beast/doc/html/beast/quick_start.html
แจกจ่ายภายใต้ใบอนุญาตซอฟต์แวร์ Boost เวอร์ชัน 1.0 (ดูไฟล์ LINECTION FILE_1_0.TXT หรือคัดลอกที่ https://www.boost.org/license_1_0.txt)
โปรดรายงานปัญหาหรือคำถามที่นี่: https://github.com/boostorg/beast/issues
หากคุณต้องการมีส่วนร่วมในสัตว์ร้ายและช่วยให้เรารักษาคุณภาพสูงให้พิจารณาดำเนินการตรวจสอบรหัสเกี่ยวกับคำขอดึงที่ใช้งานอยู่ ข้อเสนอแนะใด ๆ จากผู้ใช้และผู้มีส่วนได้ส่วนเสียแม้แต่คำถามง่ายๆเกี่ยวกับวิธีการทำงานหรือทำไมพวกเขาถึงทำวิธีที่แน่นอนมีค่าและสามารถใช้เพื่อปรับปรุงห้องสมุด การตรวจสอบรหัสให้ประโยชน์เหล่านี้:
คุณสามารถดูคำขอดึงแบบปิดเพื่อรับทราบว่ามีความคิดเห็นอย่างไร หากต้องการตรวจสอบรหัสเพียงลงชื่อเข้าใช้กับบัญชี GitHub ของคุณแล้วเพิ่มความคิดเห็นในคำขอดึงแบบเปิดใด ๆ ด้านล่างอย่าอาย!
https://github.com/boostorg/beast/pulls
นี่คือแหล่งข้อมูลบางส่วนในการเรียนรู้เพิ่มเติมเกี่ยวกับรีวิวรหัส:
สัตว์ร้ายเจริญรุ่งเรืองในการตรวจสอบรหัสและข้อเสนอแนะใด ๆ จากผู้ใช้และผู้มีส่วนได้ส่วนเสียเกี่ยวกับอินเทอร์เฟซ แม้ว่าคุณจะมีคำถามเพียงแค่ถามพวกเขาในการตรวจสอบรหัสหรือในประเด็นที่ให้ข้อมูลที่มีค่าที่สามารถใช้ในการปรับปรุงห้องสมุด - อย่าลังเลไม่มีคำถามไม่มีนัยสำคัญหรือไม่สำคัญ!