Status Integrasi Berkelanjutan
Cabang | GCC 7.5.0 dan 9.4.0 | Visual Studio 2019 | |
---|---|---|---|
Dentang 9.0 | Visual Studio 2022 | ||
Xkode 15.2 | MinGW-w64 | ||
Xkode 15.4 | |||
menguasai | |||
perkembangan |
Unduh
Proyek C++ Micro Services adalah kumpulan komponen untuk membangun aplikasi berorientasi layanan modular dan dinamis. Ini didasarkan pada OSGi, tetapi dirancang untuk mendukung solusi lintas platform asli.
Penggunaan pola dan konsep C++ Micro Services yang tepat akan menghasilkan sistem dengan satu atau lebih properti berikut:
Tidak ada, kecuali kompiler C++ yang cukup baru. Semua dependensi perpustakaan pihak ketiga disertakan dan sebagian besar digunakan untuk detail implementasi.
Pustaka ini menggunakan bahasa C++17 dan fitur pustaka serta dikompilasi pada banyak platform berbeda.
Versi kompiler minimum mutlak yang disarankan:
Tidak semua versi kompiler minimum absolut diuji (seperti disebutkan). Kami menguji dan merekomendasikan kompiler berikut:
Versi CMake minimum yang disarankan:
Untuk semua CI yang dibangun melalui GitHub Actions, versi CMake (dan versi perangkat lunak lain yang disediakan) yang kami gunakan ditentukan oleh perangkat lunak yang disediakan pada runner yang dihosting GitHub.
Untuk informasi tentang versi spesifik perangkat lunak yang digunakan pelari, silakan lihat sumber daya berikut:
Di bawah ini adalah daftar kombinasi kompiler/OS yang diuji:
Proyek C++ Micro Services awalnya dikembangkan di Pusat Penelitian Kanker Jerman. Kode sumbernya dihosting sebagai Proyek GitHub. Lihat file HAK CIPTA di direktori tingkat atas untuk informasi hak cipta terperinci.
Proyek ini dilisensikan di bawah Lisensi Apache v2.0.
CppMicroServices.org menyambut pengembang dengan latar belakang berbeda dan pengalaman luas. Komunitas yang beragam dan inklusif akan menciptakan lebih banyak ide hebat, memberikan perspektif yang lebih unik, dan menghasilkan kode yang lebih luar biasa. Tujuan kami adalah membuat komunitas CppMicroServices ramah terhadap semua orang.
Untuk memberikan kejelasan tentang apa yang diharapkan dari anggota kami, CppMicroServices telah mengadopsi kode etik yang ditetapkan oleh kontributor-covenant.org. Dokumen ini digunakan di banyak komunitas open source, dan kami yakin dokumen ini mengartikulasikan nilai-nilai kami dengan baik.
Silakan lihat :any:`Kode Etik <kode etik>` untuk rincian lebih lanjut.
Mulailah dengan mengkloning repositori proyek. Penting untuk dicatat bahwa karena proyek menggunakan submodul git, Anda harus mengkloning repositori dengan flag --recursive. Ini juga akan mengkloning submodul dan menempatkannya di direktori masing-masing. Untuk membaca lebih lanjut tentang cara kerja submodul git dan cara mengkloningnya ke dalam repositori yang sudah ada di disk Anda, silakan lihat dokumentasi Git.
Pada dasarnya, pustaka C++ Micro Services memberi Anda registri layanan dinamis yang kuat selain siklus hidup terkelola. Kerangka kerja ini mengelola, antara lain, unit modularitas logis yang disebut bundel yang terdapat dalam perpustakaan bersama atau statis. Setiap bundel dalam perpustakaan memiliki objek :any:`cppmicroservices::BundleContext` terkait, yang melaluinya registri layanan diakses.
Untuk menanyakan registri objek layanan yang mengimplementasikan satu atau lebih antarmuka spesifik, kodenya akan terlihat seperti ini:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void UseService (BundleContext context)
{
auto serviceRef = context. GetServiceReference <SomeInterface>();
if (serviceRef)
{
auto service = context. GetService (serviceRef);
if (service) { /* do something */ }
}
}
Mendaftarkan objek layanan pada antarmuka tertentu terlihat seperti ini:
# include " cppmicroservices/BundleContext.h "
# include " SomeInterface.h "
using namespace cppmicroservices ;
void RegisterSomeService (BundleContext context, const std::shared_ptr<SomeInterface>& service)
{
context. RegisterService <SomeInterface>(service);
}
Model layanan OSGi juga memungkinkan untuk membubuhi keterangan layanan dengan properti dan menggunakan properti ini selama pencarian layanan. Hal ini juga memungkinkan untuk melacak siklus hidup objek layanan. Silakan lihat Dokumentasi untuk contoh dan tutorial lebih lanjut serta referensi API. Ada juga postingan blog tentang OSGi Lite untuk C++.
Repositori Git berisi dua cabang abadi, master dan pengembangan. Cabang master berisi kode kualitas produksi dan HEAD-nya menunjuk ke versi rilis terbaru. Cabang pengembangan adalah cabang default dan berisi status pengembangan saat ini. Permintaan tarik secara default menargetkan cabang pengembangan. Lihat file :ref:`CONTRIBUTING <contributing>` untuk detail tentang proses kontribusi.
Repositori CppMicroServices mendefinisikan kait gitnya di direktori .githooks. Direktori ini ditetapkan sebagai direktori untuk git hooks melalui eksekusi git config core.hooksPath <path> di file CMakeLists.txt kami.
Jika hook pra-komit format dentang gagal karena format dentang tidak diinstal, silakan instal dan letakkan di jalurnya. Demikian pula, jika git-clang-format tidak diinstal, lakukan hal yang sama. git-clang-format hadir dengan distribusi LLVM dari format clang.
Jika hal ini tidak memungkinkan bagi Anda, Anda dapat menentukan --no-verify saat melakukan perubahan. Hal ini sangat tidak disarankan dan Anda harus memberikan alasan mengapa Anda tidak dapat memformat komitmen Anda.
Kami berhak menolak permintaan penarikan apa pun yang tidak diformat dengan benar dan tidak memiliki alasan sah yang ditentukan.