2013-04-18 10 views
6

Czy Asio nadal rozwija się oddzielnie od Boost, czy jest Boost.Asio jedyna wersja wciąż jest aktualizowana?Asio bez zwiększenia

Na Asio website mówi się o korzyściach dla obu wersji i że Asio jest aktualizowany częściej niż Boost. Jednak ostatnie wydanie dev na stronie to 1.5.3, wydane w marcu 2011, podczas gdy najnowsze wydanie Boost 1.53 z lutego 2013 zawiera Asio 1.8.3, z dużą ilością zmian od 1.5.3.

Albo strona Asio została porzucona bez powiadomienia na rzecz aktualizacji tylko doładowania, albo została przeniesiona do jakiejś lokalizacji, której nie znalazłem. Czy ktoś wie na pewno, co się stało?

Powodem, dla którego pytam, jest to, że próbuję zmniejszyć Boost z mojego projektu, a Boost.Asio jest jedyną biblioteką Boost, której aktualnie używam. Asio samo w sobie jest biblioteką tylko nagłówkową, ale Boost.Asio pobiera kilka innych bibliotek Boost (System, Regex, Date_Time), które w przeciwnym razie są nieużywane.

Byłbym skłonny przejść na inną lekką bibliotekę gniazd, ale nie znalazłem jeszcze tak dobrego jak Asio (pod względem niskich zależności i używania natywnej platformy iocp/epoll).

+0

Istnieje również poco, choć sam go nie używałem ... – Nim

Odpowiedz

3

Poprosiłem poprzez e-mail, wersja non-boost jest utrzymywany i Christopher KOHLHOFF, autor powiedział, że utrzymuje go na github

https://github.com/chriskohlhoff/asio

Patrząc na to dzisiaj nie robi Wygląda na to, że 1.8.3 jest na górze, a przynajmniej nie został oznaczony etykietą, więc mógł przestać to robić.

+0

Wygląda teraz na 1.8.3. Sądzę, że to oznacza, że ​​nadal utrzymuje tę wersję. Niesamowite! – Nairou

6

Asio jest oddzielnie rozwijany, a następnie wzmocniony i włączony do Boost.Asio. Jednak możesz nie być w stanie usunąć Boost ze swojego projektu w oparciu o to, które funkcje i kompilator są używane. Od wersji Asio 1.10.0 Asio próbuje używać standardowych bibliotek C++ 11 zamiast Boost.

Asio jest w zasadzie Boost.Asio:

  • Bez nazw Boost i makro konwencji nazewnictwa.
  • Nie zależny od Boost.System i Boost.Thread as Asio zapewnia własną ograniczoną funkcjonalność w miejsce tych dwóch bibliotek.

Do wersji Asio przed 1.10.0 mogą istnieć zależności boost. Zależności te są często wprowadzane w szablonach; w ten sposób zależność może wystąpić tylko wtedy, gdy aplikacja używa określonej funkcjonalności. Łatwo jest przeoczyć subtelny szczegół na stronie Asio and Boost.Asio, w którym stwierdza:

Asio jest header-file-tylko i najbardziej korzysta nie wymaga łączenie przeciwko dowolnej biblioteki boost. Używając C++ 11 z najnowszymi wersjami gcc, clang lub MSVC, Asio może być używany niezależnie od Boost, definiując podczas kompilacji ASIO_STANDALONE.

Na ogół następujące funkcje przedstawić zależności:

  • Timers zależą Boost.DateTime lub Boost.Chrono. W przypadku Asio 1.10.0 i późniejszych wersji, kompilacje C++ 11 będą korzystać z std::chrono.
  • read_until() operacje używające wyrażenia regularnego zależą od Boost.Regex.
  • Stackful coroutines które są oparte na bibliotece Boost.Coroutine.

może być warte rozważenia przy użyciu:

  • BCP wyodrębnić podzbiór biblioteki Boost, swoich potrzeb projektowych.
  • libuv, biblioteka języka C udostępniająca asynchroniczną pętlę zdarzeń i abstrakcję z powiadomienia o zdarzeniu we/wy rodzimych. This odpowiedź porównuje dwie biblioteki.
+1

+1 libuv, biblioteka wykracza znacznie powyżej swojej wagi. –

Powiązane problemy