カラクリスタ

『輝かしい青春』なんて失かったヒトのブログ

P2P を使うソフトウェア開発に libp2p を使うと便利そう

昨日だったかに、

IPFS の開発状況って今どうなっているんだろう

と思ってリポジトリを見てたんですが、その際、

と言う、大変に面白そうな Project を見つけたので紹介します。

libp2p とは?

libp2p は、読んで字の如く、P2P ソフトウェアを開発するために使うライブラリ群の名前なのですが、 この libp2p 、どうもリポジトリのドキュメントを読んで行くと、元は IPFS が内部的に使ってたライブラリを、 再利用可能な感じで切り出したライブラリ群っぽいです。

そのため、IPFS が実際に使っているライブラリなので、まぁバグとか有っても修正されているだろうし、 また、実装したけど使われてない、とかはあまり無さそうであり、かつ、何らかのソフトウェアで、 P2P 周りを実装するためには十分な質のライブラリが提供されているので、そう言った意味では、 結構便利そうなライブラリ群ではあります。

ただ、時々、優先度の問題で古くなって動かなくなっているライブラリなども有るには有るので、 その辺りは、

で、実際に動くのかどうか、は確認した方が良いと思います。

libp2p が提供される言語

現状、公式の WebSite を見た限りでは、

  • Golang
  • JavaScript (Browser, Node.js)

と言う言語に対してライブラリが提供されていて、他の言語も提供する予定をしているみたいです。 が、今のところは Golang と JavaScript に限定されている感じです。

それで、これは僕が実際に P2P を使うソフトウェアを作れないだろうか、と思って調べた時に感じた事ではありますが、 近年、開発現場で良く使われている、と思われる言語うの内、P2P 周りのライブラリが結構揃ってる、って感じの言語は、 上記にも記載した、

  • Golang
  • JavaScript

の二種なので、まぁそういった意味でも、libp2p は、メジャーどころは外してないなぁ、という印象です。

libp2p の使い所

僕としては、まぁ、

手軽に使える P2P を用いた ソフトウェアを作る

と言うのであれば、

  • 言語に JavaScript
  • ランタイムに Electron
  • UI も Electron

と言った感じにするかと思いますね。

以上

とりあえず、紹介としてはそんな感じですかね。

ま、僕としては P2P アプリケーションを開発するなら、基本、

Electron + JavaScript で開発した方が楽そう

という印象を持っているので、そういう感じの技術選択になりますが、 まぁソレ以外だと Golang とかにもなるのかなーと思ってます。はい。