Rubyアドベントカレンダー(その1)10日目の記事です。
技術アドベントカレンダーの原点?に立ち返り、自分の書いたものではなくTipsの話をします。
今回はここ数年よく使うようになったgem、fiddleの紹介をしようと思います*1。
fiddleとは/FFIとは
fiddleとはRubyにおいて、FFI(Foreign Function Interface)をするためのgemです。
そのものずばり ffi というgemがあるためそちらを使う方も多いようですが、fiddleは現在標準ライブラリであるので、Rubyをインストールしたらそのまま含まれており、またRubyコアチームによりメンテナンスされているようです。
さて、ではそのFFIとは何かという話になります。「あるプログラミング言語から他のプログラミング言語で定義された関数などを利用するための機構」という説明がされたりしますが、(ことC言語に詳しくない方には)ピンとこないかもしれません。ほんの少しC言語を書いてピンとくるようにしましょう。
共有ライブラリを作る
ということでC言語を書きます。心配なさらず、今回は雰囲気だけわかれば大丈夫です...。
実行する環境はLinux、Ubuntu 20.04以降を推奨します*2。Vagrant上のVMで試していますが、Dockerの中でも実行は大丈夫だと思います。
続きを読む