httr2というパッケージができるという噂

「いいニュースと悪いニュースがある。どっちから聞きたい?」

というのは人生で一度は言ってみたいセリフのひとつですが、ついに使うときが来ました。

ただしこれはブログなので、答えを聞いてから順番を決めるとかいうインタラクティブなことはできません。いい方から行きましょう。タイトルでもう言っちゃってるし。

httr2ができる

httr2という新しいパッケージをつくろうという計画があるようです。そう、「httrパッケージのバージョン2」ではなく、「httr2」という別のパッケージです。その理由は上のIssueを読んでもらうのが早いですが、

  • pipe-friendlyじゃない
  • 関数がリクエストを処理するものかレスポンスを処理するものかわかりづらい

ということのようです。httrもけっこう古いパッケージなので、パイプ演算子%>%)の時代に合わせて姿を変えていくのはまあそういうもんだよなあ、という感じはします。実際、...に渡すものが多いのでパイプで使いづらいというのは私自身も思うところではあります。改善してほしい…。

具体的にはこんな感じになるらしいです。

req("http://url.com/") %>% req_fetch()

# req_fetch could be a generic so you could still do
req_fetch("http://url.com/")

さて…、次に悪いニュースです。

httrはもうメンテされない?

httrのIssuesPull Requestを見てもらうとわかると思いますが、この半年ほど、ほとんどのものがコメントすらつかないまま放置されています。私もOAuth1.0に関するものをふたつ報告してるんですが、音沙汰がありません。

おそらく最後についているコメントはこれです。

I think that’s ok. I’m planning for httr2 in the next six months so I’m ok if the PR is slightly hacky. We can think it through in more depth for the next version.
(https://github.com/hadley/httr/issues/408#issuecomment-260062341)

そして「next six months」と書かれていますが、これは去年11月の発言なのでもう来月には6カ月が経とうとしています。が、httr2をつくろうという動きはいまだ見えてきません(プライベートレポジトリでやってるのかもしれませんけど)。

httr2に注力したいから、という理由でhttrのメンテナンスは中断していて、しかしhttr2がいつできるのかはまったく分からない、というのが現状です。また、httr2パッケージができても、今httrパッケージに依存しているパッケージがhttr2に移行するにはそれなりに時間がかかるでしょう。ということは、今起こっているhttrのバグはしばらく改善する望みがない、ということです。

まとめ

つらい…

場合によってはcurlパッケージを生で使ったり、rOpenSciが作っているcrulパッケージを使うのも手かもしれません。がんばって冬の時代を生き延びましょう。