2013-04-18 14 views
6

まだAsioはBoostとは別に開発されていますか、Boost.Asioだけがまだ更新されていますか?ブーストなしのAsio

Asio websiteでは、両方のバージョンに利点があり、Boostよりも頻繁にAsioが更新されているとのことです。しかし、サイト上の最新のdevリリースは1.5.3で、2011年3月にリリースされました。2013年2月からの最新のBoost 1.53リリースにはAsio 1.8.3が含まれています。

Boost-onlyアップデートを通知する通知なしにAsioのWebサイトを放棄したか、見つからなかった場所に移動しました。誰が何が起こったのか分かりますか?

私が尋ねる理由は、自分のプロジェクトからBoostをカットしようとしていることです.Boost.Asioは私が現在使っている唯一のBoostライブラリです。 Asio自体はヘッダのみのライブラリですが、Boost.Asioは他のBoostライブラリ(System、Regex、Date_Time)を使用します。

私は別の軽量ソケットライブラリに切り替えるつもりですが、(依存性が低く、ネイティブプラットフォームのiocp/epollメソッドを使用するという点で)まだAsioほど優れていないものは見つかりませんでした。

+0

私はそれを自分で使っていませんが、ポコもあります... – Nim

答えて

3

私は非ブーストバージョンが維持されている電子メールで尋ねたとクリストファーKohlhoff、著者、彼はそれがないgithubの今日それを見てみると

https://github.com/chriskohlhoff/asio

でそれを維持しました1.8.3のように見えるか、少なくともそれはラベルが付いていないので、彼はそのレポを維持していない可能性があります。

+0

1.8.3のように見えます。私は彼がまだそのバージョンを維持していることを意味すると思います。驚くばかり! – Nairou

6

Asioが別途に開発された場合、は、にブーストされ、Boost.Asioにマージされます。ただし、どの機能とコンパイラが使用されているかに基づいて、プロジェクトからBoostを削除することはできません。 Asio 1.10.0以降、AsioはBoostの代わりに同等のC++ 11標準ライブラリを使用しようとしています。ブースト名前空間とマクロの命名規則がなければ

  • はASIOは基本的にBoost.Asioです。

  • Boost.SystemおよびBoost.Threadに依存しないAsioは、これら2つのライブラリの代わりに独自の機能を提供します。

1.10.0より前のAsioバージョンでは、ブースト依存関係が存在する可能性があります。これらの依存関係は、しばしばテンプレート内に導入されます。したがって、アプリケーションが特定の機能を使用する場合にのみ、依存関係が発生する可能性があります。

ASIOはヘッダファイルのみで、は、ほとんどすべてのBoostライブラリをリンクする必要はありませんを使用するために:述べAsio and Boost.Asioページ、上の微妙な細部を見落とすことは容易です。最近のバージョンのgcc、clang、またはMSVCでC++ 11を使用する場合、コンパイル時にASIO_STANDALONEを定義することにより、AsioをBoostとは独立して使用することができます。

  • タイマーがBoost.DateTimeまたはBoost.Chronoに依存:

は一般的には、以下の機能が依存関係を紹介します。 Asio 1.10.0以降では、C++ 11のビルドにはstd::chronoが使用されます。

  • read_until() regexを使用する操作は、Boost.Regexに依存します。
  • Stackful coroutinesであり、これはBoost.Coroutineライブラリーに基づく。

  • これは、使用して検討する価値があるかもしれない:

    • BCPをBoostライブラリプロジェクトのニーズのサブセットを抽出します。
    • libuvは、非同期イベントループとネイティブI/Oイベント通知からの抽象化を提供するCライブラリです。 This答えは2つのライブラリを比較します。
    +1

    +1 libuv、そのライブラリはその重さの上にパンチします。 –

    関連する問題