Aversa [Ruby][BitTorrent]
Aversa is a little utility for creating and viewing BitTorrent metainfo files.
メタ情報ファイル(.torrentファイル)の表示と生成のみだけど、
トラッカーも作りそうな雰囲気。Net::BitTorrentモジュールとか作ってたので
プロジェクトにマージお願いしてみた。
元々、興味があったのは peer-wire-protcol の部分のみだったので、
実験用にダウンロード出来る最小限のコードだけ書いて
アプリケーションまでは作らずに放置していたのだけど、
この機会にもう少し手入れしてみる事にする。
ダウンローダーとかトラッカーはみんな作ってると思うので、
焦点をずらして、BitTorrentの応用技術に注目してみようと思う。
- BitTorrentを用いたファイルの同期ツール (#bittorrentで聞いてた人がいた)
- BitTorrentとRSSを組み合わせた broadcast system
- BitTorrent peer wire protocol uploader proxy (友達が必要だったので)
- BitTorrent用のクローラー(検索エンジン等があったので)
- BitTorrent + RubyGem (rubyforge.orgのfeature requestにあった)
rubyforge.orgがトラッカーを提供し始めたので、検索機能と連係できるかも知れない。
データベースを共有すればクローラーは必要ないかな。
ちなみにプロジェクトのadminはrubyforge.orgのサポートもやってる(?らしい)
- MetaInfoのRDF版 (textで保存/編集できる、XSLで表示しやすいなどの利点)
メタ情報ファイルのXML化はWikiにもアイデアが挙がってた。
実装はまだ見たことない。
バイナリが問題なりそうだけど、適切にエンコードすれば no problem
例えば pieces は、
: ...
トラッカーがRDFとかでデータ返してくれるとうれしい。
BEncodeよりXMLの方が普及しているし、大抵の開発環境でXMLが使える。
メタ情報ファイルの文字エンコードの問題も解決する。
欠点は、当然データが冗長になる事。pieceseがbase64だと 4/3 倍 + タグや
ヘッダの分増加。ただし、これは HTTP/gzip による圧縮が期待できる。
出来るかどうかわからないけどアイデアだけ書き綴っておく。
他にも wiki に BitTorrent Spec2 拡張のアイデアが多数あり。