소개
A Jami installation typically has two main components:
자미 대몬/도서관, 그리고
the client (i.e., front-end or user interface).
To use Jami, the Jami daemon/library is always needed, since it is the core of Jami and contains all of the connectivity, communication, cryptography, and media logic. It uses libraries such as OpenDHT, PJSIP, GnuTLS, and FFmpeg and has several APIs, including DBus, libwrap (shared library), JNI, and REST. These APIs make it possible to interact with Jami without going through a graphical user interface (especially useful for using Jami in a headless/server setting), build automation tools/scripts around Jami, and build custom user interfaces for Jami.
The client (i.e., user interface) depends on the operating system and/or platform being used. For example, on Android/Replicant systems this would be jami-client-android, on iOS systems this would be jami-client-ios, and on GNU/Linux, macOS, and Windows this would be jami-client-qt. There also used to be a GTK-based jami-client-gnome for GNU/Linux and a jami-client-macos for macOS, both of which were deprecated in favor of the newer cross-platform jami-client-qt based on the Qt framework.
GNU/Linux 시스템에서는 Jami-client-qt를 Jami daemon/library와 통신하기 위해 두 가지 주요 API 중 하나를 사용하여 구성하고 구축할 수 있습니다.
libwrap: When jami-client-qt is configured to use libwrap (which is always the case on macOS and Windows), it will use Jami daemon’s shared library API, and there will be no separate daemon process. This has the advantage of things being somewhat more efficient than with the DBus API mentioned below, in exchange for less flexibility (not being able to interact with Jami via DBus when using libwrap).
dl.jami.net를 통해 배포되는 Jami 패키지는 현재 libwrap API를 사용할 수 있도록 구성되어 있습니다.
DBus: When jami-client-qt is configured to use DBus, it will communicate with the Jami daemon via its DBus API, and the daemon will be running as a separate process by itself. This is greatly flexible for communicating with and controlling the daemon through other means (for example, small utility scripts) simultaneously while the Qt-based Jami client also uses and interacts with it. The associated cost of this added flexibility is the overhead of using DBus.