Thrift adalah tumpukan perangkat lunak yang ringan dan tidak bergantung pada bahasa untuk implementasi RPC point-to-point. Thrift menyediakan abstraksi dan implementasi yang bersih untuk transportasi data, serialisasi data, dan pemrosesan tingkat aplikasi. Sistem pembuatan kode menggunakan bahasa definisi sederhana sebagai masukan dan menghasilkan kode di seluruh bahasa pemrograman yang menggunakan tumpukan abstrak untuk membangun klien dan server RPC yang dapat dioperasikan.
Thrift memudahkan program yang ditulis dalam bahasa pemrograman berbeda untuk berbagi data dan memanggil prosedur jarak jauh. Dengan dukungan 28 bahasa pemrograman, kemungkinan besar Thrift mendukung bahasa yang Anda gunakan saat ini.
Thrift dirancang khusus untuk mendukung perubahan versi non-atom di seluruh kode klien dan server. Hal ini memungkinkan Anda untuk meningkatkan server Anda sambil tetap dapat melayani klien lama; atau minta klien baru mengeluarkan permintaan ke server lama. Tulisan luar biasa yang disediakan komunitas tentang penghematan dan kompatibilitas saat membuat versi API dapat ditemukan di Panduan Hemat yang Hilang.
Untuk detail lebih lanjut tentang desain dan implementasi Thrift, lihat whitepaper Thrift yang disertakan dalam distribusi ini, atau di file README.md di subdirektori yang Anda minati.
Cabang | Travis | pemasok | Pemindaian Cakupan | codecov.io | Situs web |
---|---|---|---|---|---|
master | |||||
0.17.0 |
Thrift tidak memiliki kalender rilis spesifik saat ini.
Kami berusaha untuk merilisnya dua kali setahun. Unduh rilis saat ini.
Dilisensikan kepada Apache Software Foundation (ASF) berdasarkan satu atau lebih perjanjian lisensi kontributor. Lihat file PEMBERITAHUAN yang didistribusikan bersama karya ini untuk informasi tambahan mengenai kepemilikan hak cipta. ASF melisensikan file ini kepada Anda di bawah Lisensi Apache, Versi 2.0 ("Lisensi"); Anda tidak boleh menggunakan file ini kecuali sesuai dengan Lisensi. Anda dapat memperoleh salinan Lisensi di
http://www.apache.org/licenses/LICENSE-2.0
Kecuali diwajibkan oleh undang-undang yang berlaku atau disetujui secara tertulis, perangkat lunak yang didistribusikan berdasarkan Lisensi didistribusikan berdasarkan DASAR "APA ADANYA", TANPA JAMINAN ATAU KETENTUAN DALAM BENTUK APAPUN, baik tersurat maupun tersirat. Lihat Lisensi untuk bahasa tertentu yang mengatur izin dan batasan berdasarkan Lisensi.
penghematan/
penyusun/
Contains the Thrift compiler, implemented in C++.
perpustakaan/
Contains the Thrift software library implementation, subdivided by
language of implementation.
cpp/
go/
java/
php/
py/
rb/
...
tes/
Contains sample Thrift files and test code across the target programming
languages.
tutorial/
Contains a basic tutorial that will teach you how to develop software
using Thrift.
Untuk membangun dengan cara yang sama Travis CI membangun proyek, Anda harus menggunakan buruh pelabuhan. Kami memiliki instruksi pembuatan yang komprehensif untuk buruh pelabuhan.
Lihat http://thrift.apache.org/docs/install untuk daftar persyaratan build (mungkin sudah basi). Alternatifnya, lihat lingkungan build buruh pelabuhan untuk daftar prasyarat.
Informasi lebih lanjut mengenai Thrift dapat diperoleh di halaman web Thrift di:
http://thrift.apache.org
Thrift terinspirasi oleh pilar, alat RPC ringan yang ditulis oleh Adam D'Angelo, dan juga buffering protokol Google.
Jika Anda membangun repositori sumber untuk pertama kalinya, Anda perlu membuat skrip konfigurasi. (Ini tidak diperlukan jika Anda mengunduh tarball.) Dari direktori teratas, lakukan:
./bootstrap.sh
Setelah skrip konfigurasi dibuat, penghematan dapat dikonfigurasi. Dari direktori teratas, lakukan:
./configure
Anda mungkin perlu menentukan lokasi file boost secara eksplisit. Jika Anda menginstal boost di /usr/local
, Anda akan menjalankan konfigurasi sebagai berikut:
./configure --with-boost=/usr/local
Perhatikan bahwa secara default pustaka C++ hemat biasanya dibuat dengan menyertakan simbol debugging. Jika Anda ingin menyesuaikan opsi ini, Anda harus menggunakan opsi CXXFLAGS dalam konfigurasi, seperti:
./configure CXXFLAGS='-g -O2'
./configure CFLAGS='-g -O2'
./configure CPPFLAGS='-DDEBUG_MY_FEATURE'
Untuk mengaktifkan opsi gcov yang diperlukan -fprofile-arcs -ftest-coverage aktifkan:
./configure --enable-coverage
Jalankan ./configure --help untuk melihat opsi konfigurasi lainnya
Perlu diketahui bahwa pustaka Python akan mengabaikan opsi --prefix dan hanya menginstal di mana pun distutil Python meletakkannya (biasanya di sepanjang baris /usr/lib/pythonX.Y/site-packages/
). Jika Anda perlu mengontrol di mana modul Python dipasang, atur variabel PY_PREFIX. (DESTDIR dihormati untuk Python dan C++.)
Lakukan penghematan:
make
Dari direktori teratas, jadilah pengguna super dan lakukan:
make install
Hapus instalasi penghematan:
make uninstall
Perhatikan bahwa beberapa paket bahasa harus diinstal secara manual menggunakan alat build yang lebih sesuai dengan bahasa tersebut (pada saat penulisan ini, ini berlaku untuk Java, Ruby, PHP).
Cari file README.md di folder lib// untuk detail lebih lanjut tentang instalasi setiap paket perpustakaan bahasa.
Apache Thrift tersedia melalui sejumlah manajer paket, dan daftarnya terus bertambah. Ikhtisar lebih rinci dapat ditemukan di situs web Apache Thrift di bawah "Perpustakaan" dan/atau di README masing-masing untuk setiap bahasa di bawah /lib
Ada sejumlah besar pengujian perpustakaan klien yang semuanya dapat dijalankan dari direktori tingkat atas.
make -k check
Ini akan membuat semua perpustakaan (jika diperlukan), dan dijalankan melalui pengujian unit yang ditentukan di setiap perpustakaan klien. Jika satu bahasa gagal, pemeriksaan pembuatan akan dilanjutkan dan memberikan sinopsis di akhir.
Untuk menjalankan rangkaian pengujian lintas bahasa, jalankan:
make cross
Ini akan menjalankan serangkaian pengujian yang menggunakan bahasa klien dan server berbeda.