13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

therubyracer と libv8 と libv8-node

Last updated at Posted at 2022-09-08

これはなに

Rails で開発されているプロダクトで libv8 が使われており違いや浅く歴史について調べたので簡単にまとめました

TL;DR

  • therubyracerlibv8libv8-node すべて JavaScript Engine V8 を実行バイナリである
  • 最初は therubyracer が開発されていたが、 実行環境の差分追従などが困難になり libv8 の開発を開始、その後再び困難になったことから libv8-node の開発が行われている
  • therubyracer, libv8, libv8-node の何れかの利用が求められたら、現在は libv8-node を使うことが望ましい

therubyracer について

therubyracer は JavaScript Engine V8 実行を行う binary を提供している Gem です

2018 年を最後に更新されておらず、 未対応の Platform 対応を希望する Issue も何度か作成されていますが、
後述する libv8libv8-node に更新することを推奨されています

therubyracer には過去苦しめられた思い出も沢山ありますが今回は割愛するとともに、
therubyracer については以下記事やタグを参照してみてください

libv8 について

libv8therubyracer 同様に JavaScript Engine V8 実行を行う binary を提供している Gem です

README にも記載されているとおり、 libv8therubyracer で V8 Engine の upgrade 追従が困難になったタイミングでスピンオフされたものです
libv8mini_racer 等多くの Gem に利用されています

About
This project spun off of therubyracer which depends on having a specific version of V8 to compile and run against. However, actually delivering that version reliably to all the different platforms proved to be a challenge to say the least.
We got tired of waiting 5 minutes for V8 to compile every time we installed that gem.

Node.js の v14 系までの実行は libv8 を利用することが多かった印象です
こちらも 2020 年を最後に更新されておらず、 未対応の Platform 対応を希望する Issue も何度か作成されていますが、
後述する libv8-node に更新することを推奨されています

libv8-node について

libv8-nodelibv8therubyracer 同様に JavaScript Engine V8 実行を行う binary を提供している Gem です

README にも記載されているとおり、 libv8-nodelibv8 の時と同様に V8 Engine の upgrade 追従が困難になったタイミングでスピンオフされたものです

About
This project spun off of libv8, which itself spun off of therubyracer which depends on having a specific version of V8 to compile and run against. However, actually delivering that version reliably to all the different platforms proved to be a challenge to say the least.

Node.js の v16 系と同等の実行環境を求められる場合は libv8-node を利用しましょう
現在サポートしている Platform も x86_64 系の CPU arch だけでなく arm 系も対応されています

結局何を使えば良いか

Reference

13
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?