Thrift เป็นสแต็กซอฟต์แวร์ที่ไม่ต้องใช้ภาษาและมีน้ำหนักเบาสำหรับการใช้งาน RPC แบบจุดต่อจุด Thrift นำเสนอนามธรรมและการใช้งานที่ชัดเจนสำหรับการขนส่งข้อมูล การจัดลำดับข้อมูล และการประมวลผลระดับแอปพลิเคชัน ระบบการสร้างโค้ดใช้ภาษาที่มีคำจำกัดความอย่างง่ายเป็นอินพุต และสร้างโค้ดข้ามภาษาการเขียนโปรแกรมที่ใช้สแต็กแบบนามธรรมเพื่อสร้างไคลเอ็นต์และเซิร์ฟเวอร์ RPC ที่ทำงานร่วมกันได้
Thrift ช่วยให้โปรแกรมที่เขียนด้วยภาษาโปรแกรมต่างๆ แชร์ข้อมูลและเรียกใช้ขั้นตอนระยะไกลได้อย่างง่ายดาย ด้วยการรองรับภาษาการเขียนโปรแกรม 28 ภาษา โอกาสที่ Thrift จะรองรับภาษาที่คุณใช้อยู่ในปัจจุบัน
Thrift ได้รับการออกแบบมาโดยเฉพาะเพื่อรองรับการเปลี่ยนแปลงเวอร์ชันที่ไม่ใช่อะตอมมิกในไคลเอนต์และโค้ดเซิร์ฟเวอร์ สิ่งนี้ทำให้คุณสามารถอัพเกรดเซิร์ฟเวอร์ของคุณในขณะที่ยังคงสามารถให้บริการลูกค้ารุ่นเก่าได้ หรือมีไคลเอ็นต์ใหม่ออกคำขอไปยังเซิร์ฟเวอร์รุ่นเก่า คุณสามารถดูบทความที่ยอดเยี่ยมที่ชุมชนจัดทำเกี่ยวกับความประหยัดและความเข้ากันได้เมื่อกำหนดเวอร์ชัน API ได้ใน Thrift Missing Guide
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการออกแบบและการใช้งานของ Thrift โปรดดูเอกสารปกขาวของ Thrift ที่รวมอยู่ในการเผยแพร่นี้ หรือที่ไฟล์ README.md ในไดเรกทอรีย่อยเฉพาะของคุณที่คุณสนใจ
สาขา | ทราวิส | ผู้ชื่นชม | การสแกนความครอบคลุม | codecov.io | เว็บไซต์ |
---|---|---|---|---|---|
master | |||||
0.17.0 |
Thrift ไม่มีปฏิทินการเผยแพร่ที่เฉพาะเจาะจงในขณะนี้
เรามุ่งมั่นที่จะเผยแพร่ปีละสองครั้ง ดาวน์โหลดรุ่นปัจจุบัน
ได้รับอนุญาตให้ใช้งานกับ Apache Software Foundation (ASF) ภายใต้ข้อตกลงใบอนุญาตผู้มีส่วนร่วมตั้งแต่หนึ่งข้อตกลงขึ้นไป ดูไฟล์ประกาศที่แจกจ่ายพร้อมกับงานนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเป็นเจ้าของลิขสิทธิ์ ASF ให้สิทธิ์ใช้งานไฟล์นี้แก่คุณภายใต้ Apache License เวอร์ชัน 2.0 ("ใบอนุญาต"); คุณไม่สามารถใช้ไฟล์นี้ได้เว้นแต่จะเป็นไปตามใบอนุญาต คุณสามารถขอรับสำเนาใบอนุญาตได้ที่
http://www.apache.org/licenses/LICENSE-2.0
เว้นแต่กฎหมายที่ใช้บังคับกำหนดหรือตกลงเป็นลายลักษณ์อักษร ซอฟต์แวร์ที่เผยแพร่ภายใต้ใบอนุญาตนี้จะถูกแจกจ่าย "ตามที่เป็น" โดยไม่มีการรับประกันหรือเงื่อนไขใดๆ ทั้งโดยชัดแจ้งหรือโดยนัย ดูใบอนุญาตสำหรับภาษาเฉพาะที่ควบคุมการอนุญาตและข้อจำกัดภายใต้ใบอนุญาต
ความประหยัด/
คอมไพเลอร์/
Contains the Thrift compiler, implemented in C++.
ลิบ/
Contains the Thrift software library implementation, subdivided by
language of implementation.
cpp/
go/
java/
php/
py/
rb/
...
ทดสอบ/
Contains sample Thrift files and test code across the target programming
languages.
กวดวิชา/
Contains a basic tutorial that will teach you how to develop software
using Thrift.
หากต้องการสร้างแบบเดียวกับที่ Travis CI สร้างโปรเจ็กต์ คุณควรใช้นักเทียบท่า เรามีคำแนะนำในการสร้างที่ครอบคลุมสำหรับนักเทียบท่า
ดูhttp://thrift.apache.org/docs/installสำหรับรายการข้อกำหนดในการสร้าง (อาจเก่า) หรือดูสภาพแวดล้อมการสร้างนักเทียบท่าเพื่อดูรายการข้อกำหนดเบื้องต้น
ข้อมูลเพิ่มเติมเกี่ยวกับ Thrift สามารถรับได้จากหน้าเว็บ Thrift ที่:
http://thrift.apache.org
Thrift ได้รับแรงบันดาลใจจาก Pillar ซึ่งเป็นเครื่องมือ RPC น้ำหนักเบาที่เขียนโดย Adam D'Angelo และจากบัฟเฟอร์โปรโตคอลของ Google ด้วย
หากคุณกำลังสร้างจากแหล่งเก็บข้อมูลต้นทางตั้งแต่ครั้งแรก คุณจะต้องสร้างสคริปต์กำหนดค่า (ไม่จำเป็นหากคุณดาวน์โหลด tarball) จากไดเร็กทอรีบนสุด ให้ทำดังนี้:
./bootstrap.sh
เมื่อสร้างสคริปต์กำหนดค่าแล้ว thrift ก็สามารถกำหนดค่าได้ จากไดเร็กทอรีบนสุด ให้ทำ:
./configure
คุณอาจต้องระบุตำแหน่งของไฟล์บูสต์อย่างชัดเจน หากคุณติดตั้ง boost ใน /usr/local
คุณจะรัน configuration ดังนี้:
./configure --with-boost=/usr/local
โปรดทราบว่าตามค่าเริ่มต้นแล้วไลบรารี C++ แบบประหยัดจะถูกสร้างขึ้นโดยมีสัญลักษณ์การดีบักรวมอยู่ด้วย หากคุณต้องการปรับแต่งตัวเลือกเหล่านี้ คุณควรใช้ตัวเลือก CXXFLAGS ในการกำหนดค่า เช่น:
./configure CXXFLAGS='-g -O2'
./configure CFLAGS='-g -O2'
./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
หากต้องการเปิดใช้งานตัวเลือกที่จำเป็น gcov -fprofile-arcs -ftest-coverage เปิดใช้งาน:
./configure --enable-coverage
เรียกใช้ ./configure --help เพื่อดูตัวเลือกการกำหนดค่าอื่นๆ
โปรดทราบว่าไลบรารี Python จะเพิกเฉยต่อ --prefix ตัวเลือกและเพียงติดตั้งทุกที่ที่ distutils ของ Python วางไว้ (โดยปกติจะเป็นไปตามบรรทัดของ /usr/lib/pythonX.Y/site-packages/
) หากคุณต้องการควบคุมตำแหน่งที่จะติดตั้งโมดูล Python ให้ตั้งค่าตัวแปร PY_PREFIX (DESTDIR ได้รับการยอมรับสำหรับ Python และ C++)
ประหยัด:
make
จากไดเร็กทอรีบนสุด เป็น superuser และทำ:
make install
ถอนการติดตั้งความประหยัด:
make uninstall
โปรดทราบว่าบางแพ็คเกจภาษาจะต้องติดตั้งด้วยตนเองโดยใช้เครื่องมือสร้างที่เหมาะกับภาษาเหล่านั้นมากกว่า (ในขณะที่เขียนบทความนี้ สิ่งนี้ใช้ได้กับ Java, Ruby, PHP)
ค้นหาไฟล์ README.md ในโฟลเดอร์ lib// เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับการติดตั้งแพ็คเกจไลบรารีภาษาแต่ละภาษา
Apache Thrift มีให้บริการผ่านตัวจัดการแพ็คเกจจำนวนหนึ่ง ซึ่งเป็นรายการที่มีการเติบโตอย่างต่อเนื่อง สามารถดูภาพรวมโดยละเอียดเพิ่มเติมได้ที่เว็บไซต์ Apache Thrift ภายใต้ "Libraries" และ/หรือใน README สำหรับแต่ละภาษาภายใต้ /lib
มีการทดสอบไลบรารีไคลเอ็นต์จำนวนมากที่สามารถเรียกใช้ได้จากไดเร็กทอรีระดับบนสุด
make -k check
สิ่งนี้จะทำให้ไลบรารีทั้งหมด (ตามความจำเป็น) และดำเนินการทดสอบหน่วยที่กำหนดไว้ในแต่ละไลบรารีของไคลเอ็นต์ หากภาษาใดภาษาหนึ่งล้มเหลว การตรวจสอบจะดำเนินต่อไปและมีบทสรุปในตอนท้าย
หากต้องการเรียกใช้ชุดทดสอบข้ามภาษา โปรดเรียกใช้:
make cross
ซึ่งจะเรียกใช้ชุดการทดสอบที่ใช้ไคลเอนต์และเซิร์ฟเวอร์ภาษาที่แตกต่างกัน