Eclipse Zenoh: Pub/sub Overhead Nol, Penyimpanan/Kueri, dan Komputasi.
Zenoh (ucapkan /zeno/ ) menyatukan data bergerak, data diam, dan komputasi. Ini dengan hati-hati memadukan pub/sub tradisional dengan penyimpanan, kueri, dan komputasi yang terdistribusi secara geografis, sambil mempertahankan tingkat efisiensi waktu dan ruang yang jauh melampaui tumpukan arus utama mana pun.
Periksa situs web zenoh.io dan peta jalan untuk informasi lebih detail.
Zenoh C++ API hanya merupakan header pengikatan C++ untuk pustaka zenoh-c dan zenoh-pico.
Binding C++ masih dalam pengembangan aktif sehingga tim Zenoh akan sangat menghargai bantuan apa pun dalam mengujinya di berbagai platform, arsitektur sistem, dll. dan melaporkan masalah apa pun yang mungkin Anda temui. Hal ini akan sangat membantu meningkatkan kematangan dan ketahanannya.
Satu-satunya persyaratan sulit untuk membangun perpustakaan adalah kompiler yang mendukung C++17. Menggunakan perpustakaan memerlukan instalasi zenoh-c atau zenoh-pico.
⚠️ PERINGATAN⚠️ : Zenoh dan ekosistemnya sedang dalam pengembangan aktif. Saat Anda membangun dari git, pastikan Anda juga membangun dari git repositori Zenoh lain yang ingin Anda gunakan (misalnya pengikatan, plugin, backend, dll.). Mungkin terjadi beberapa perubahan di git tidak kompatibel dengan paket rilis Zenoh terbaru (misalnya deb, docker, pip). Kami melakukan upaya khusus dalam menjaga kompatibilitas antara berbagai repositori git di proyek Zenoh.
Untuk menginstal zenoh-cpp lakukan langkah-langkah berikut:
Kloning sumbernya.
git clone https://github.com/eclipse-zenoh/zenoh-cpp.git
Bangun dan pasang.
Secara default, Anda diharapkan telah menginstal zenoh-c. Jika Anda ingin menginstal untuk backend zenoh-pico atau keduanya (atau tidak menentukan backend apa pun), silakan setel variabel Cmake ZENOHCXX_ZENOHC
atau ZENOHCXX_ZENOHPICO
ke ON
atau OFF
. Perhatikan bahwa setidaknya salah satu backend diperlukan untuk menggunakan perpustakaan dan/atau membuat pengujian dan contoh.
Gunakan opsi CMAKE_INSTALL_PREFIX
untuk menentukan lokasi instalasi. Tanpa parameter ini instalasi dilakukan ke lokasi sistem default /usr/local
yang memerlukan hak akses root.
mkdir membangun && cd membangun cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # untuk mengonfigurasi hanya untuk zenoh-c backendcmake .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # untuk mengonfigurasi hanya untuk zenoh-pico backendcmake .. -DZENOHCXX_ZENOHC= OFF -DZENOHCXX_ZENOHPICO=OFF -DCMAKE_INSTALL_PREFIX=~/.local # untuk mengonfigurasi tidak ada backendscmake .. -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # untuk mengonfigurasi keduanya backendscmake --install .
Secara default, Anda diharapkan telah menginstal zenoh-c. Jika Anda ingin membuat dan menjalankan pengujian untuk backend zenoh-pico atau keduanya, atur variabel ZENOHCXX_ZENOHC
atau ZENOHCXX_ZENOHPICO
Cmake ke ON
atau OFF
.
Untuk membangun pengujian, jalankan:
mkdir membangun && cd membangun cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # untuk membuat pengujian hanya untuk zenoh-c backendcmake .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # untuk membuat pengujian hanya untuk zenoh-pico backendcmake .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # untuk membuat pengujian untuk backendscmake --build . --tes target ctest
Perhatikan bahwa output dari cmake ../zenoh-cpp
menunjukkan di mana zenoh-c dan/atau zenoh-pico dependensi ditemukan.
Contohnya dibagi menjadi dua subdirektori. Subdirektori universal
berisi contoh zenoh-cpp yang dapat dibangun dengan backend zenoh-c dan zenoh-pico. Subdirektori zenohc
berisi contoh dengan fungsionalitas spesifik zenoh-c.
Secara default, Anda diharapkan telah menginstal zenoh-c. Jika Anda ingin membuat contoh untuk backend zenoh-pico atau keduanya, atur variabel ZENOHCXX_ZENOHC
atau ZENOHCXX_ZENOHPICO
Cmake ke ON
atau OFF
.
Untuk membuat contoh, jalankan:
cmake .. -DCMAKE_INSTALL_PREFIX=~/.local # untuk membuat contoh hanya untuk zenoh-c backendcmake .. -DZENOHCXX_ZENOHC=OFF -DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # untuk membuat contoh hanya untuk zenoh-pico backendcmake .. - DZENOHCXX_ZENOHPICO=ON -DCMAKE_INSTALL_PREFIX=~/.local # untuk membuat contoh untuk backendscmake --build . --target contoh
Contoh ditempatkan ke dalam direktori build/examples/zenohc
dan build/examples/zenohpico
.
Ubah direktori saat ini ke varian yang Anda inginkan ( examples/zenohc
atau examples/zenohpico
di direktori build).
Lihat contoh sumber untuk argumen baris perintah (ekspresi kunci, nilai, alamat router).
Contoh zenohc
dapat bekerja secara mandiri, namun untuk contoh zenohpico
diperlukan router zenoh yang berfungsi. Jadi untuk menjalankan contoh zenohpico
unduh proyek zenoh dan jalankan router (Rust harus diinstal):
git clone https://github.com/eclipse-zenoh/zenohcd zenoh menjalankan kargo
./z_sub
./z_pub
z_pub
akan menerima pesan yang dikirim oleh z_sub
.
./z_queryable
./z_get
z_get
harus menerima data dari z_queryable
.
./z_sub_thr_cpp
./z_pub_thr_cpp 1024
Setelah penundaan 30-40 detik, z_sub_thr
akan mulai menampilkan hasil pengukuran throughput.
Berikut adalah langkah-langkah untuk memasukkan zenoh-cpp ke dalam proyek CMake. Lihat juga contoh/direktori sederhana untuk contoh singkat CMakeLists.txt.
sertakan zenoh-c atau zenoh-pico ke dalam proyek CMake Anda sebelum ketergantungan pada zenoh-cpp itu sendiri. Hal ini penting karena target perpustakaan yang Anda perlukan ( zenohcxx::zenohpico
, zenohcxx::zenohc::lib
) ditentukan hanya jika target perpustakaan backendnya ( zenohpico::lib
dan/atau zenohc::lib
ditentukan)
sertakan zenoh-cpp menggunakan fungsi find_package CMake:
find_package(zenohc) #if using zenoh-c backend find_package(zenohpico) #if using zenoh-pico backend find_package(zenohcxx)
tambahkan ketergantungan pada zenoh-cpp ke proyek Anda:
target_link_libraries(yourproject PUBLIC zenohcxx::zenohc) #if using zenoh-c backend target_link_libraries(yourproject PUBLIC zenohcxx::zenohpico) #if using zenoh-pico backend
sertakan header zenoh.hxx. Semua fungsi zenoh tersedia di bawah namespace zenoh
:
#sertakan "zenoh.hxx"menggunakan namespace zenoh;
Dokumentasinya ada di zenoh-cpp.readthedocs.io. Petunjuk cara membuat dokumentasi secara lokal ada di docs/README.md.