Ambrosia serwera XMPP

Original: http://delta.affinix.com/ambrosia/

Co to jest?

Ambrosia jest proof of concept serwera XMPP. Nie mieć wiele funkcji i nie jest przeznaczony do zastosowania w środowisku produkcyjnym. Został on stworzony głównie jako ćwiczenie, aby pokazać, że serwer XMPP w C ++ jest możliwe za pomocą Iris, tej samej biblioteki, że uprawnienia klienta Psi.

Co jest potrzebne, aby móc z niego korzystać?

Ambrosia zależy od OpenSSL 0.9.6+ i Cyrus SASL 2. Co ciekawe, mimo że Iris jest oparte na Qt, Ambrosia nie na zewnątrz zależy od Qt, ponieważ niezbędne źródła Qt są w pakiecie Ambrosia.

Jakie funkcje są obsługiwane?

Połączenia klientów, wykorzystując SASL lub uwierzytelnione IQ: metody
Serwer do łączności z serwerem
Dostarczanie wiadomości
Skład, subskrypcje, Obecność
VCard
SSL / TLS oraz szyfrowanie oparte SASL dla klientów

Jakie problemy są tam?

Nie zalogowany przechowywane imprezy (komunikaty lub pakiety abonamentowe)
Anulowanie subskrypcji nie jest prawidłowo obsługiwany
Prawdopodobnie mnóstwo błędów i wycieków pamięci
Jak go używać?

Zbuduj go ze zwykłymi ./configure, make, make install procedury. Aby go uruchomić, wpisz “./ambrosia nazwy hosta”, gdzie nazwa hosta jest domeną, do usług. Upewnij się, że można przyjmować połączenia na portach 5222, 5223 i 5269. Aby użyć uwierzytelniania SASL, prawdopodobnie uruchomić jako root. Aby korzystać non-sasl uwierzytelniania, należy edytować plik dołączony zwykłego tekstu userdb.

Jak to było robione?

Wersja 0.1 została dokonana w ciągu 3 dni. Wersja 0.2 (aktualna wersja) został wykonany w 3 dni. Biorąc pod uwagę, że obecna featureset sprawia, że ​​serwer prawie użyteczny, to powinien powiedzieć sporo o mocy Iris i Qt.

Podstawowe wyjaśnienie jest takie: Najpierw złapałem migawkę Qt 4, odebrał ją do zaledwie klas rdzeń / sieci i ustawić go w taki sposób, że może to być powiązane (umieściłem to w neatstuff / byoq (Bring Your Own Qt) modułu CVS). Następnie QCA v1 i Iris zostały przeniesione nad do Qt 4. Dalej, dodano funkcje Iris brakuje (zasadniczo mapowania API publicznego do wielu rzeczy serwera, kod był prawie już nie). Wreszcie, serwer podstawowy został napisany. Kod specyficznych Ambrosia jest rzeczywiście niewielka, około 1000 linii.

Jaki jest plan rozwoju?

Nie ma nikogo. Do tej pory to był szał tylko dwie czas rozwoju, a jeśli to zrobię żadnego programowania open source powinno to prawdopodobnie na moich istniejących bibliotek. Po prostu czułem, jak robi coś innego na weekend. Jeśli chcesz odebrać ten projekt, daj mi znać.

Gdzie mogę ją dostać?

Źródło: ambrozja-0.2.tar.bz2

Najnowszym źródłem można znaleźć w “Ambrosia” modułu PSI Git. Kod można także przeglądać w internecie.