JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート

今回は「JavaScriptランタイムのBunが、C言語のコンパイルとJavaScriptプログラムからの実行をサポート」についてご紹介します。

関連ワード (上記、互換性、言語等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


JavaScriptランタイムのBunは、C言語のコンパイルとJavaScriptプログラムからの実行をサポートすると発表しました。

In Bun v1.1.28, we added support for compiling and running C from JavaScripthttps://t.co/eoClllphwj pic.twitter.com/YwCW7Uc7CT

— Bun (@bunjavascript) September 18, 2024

JavaScriptを用いてアプリケーション開発を行う際に、システムの持つ機能を呼び出したい場合にはNode.jsもしくはBunに実装されたN-APIもしくはJavaScriptエンジンV8のAPIをC言語経由で呼び出すか、もしくはWebAssemblyを用いるか、いずれかを用いるのが一般的でした。

今回、JavaScriptランタイムのBunそのものがC言語のコンパイルと実行の機能を備えたことで、C言語のAPIを呼び出す3つ目の方法を提供することになります。

これはN-APIの呼び出しには実装の関係で呼び出しのオーバーヘッドがあり実行速度が遅いこと、V8のAPIはバージョンアップにより使えなくなってしまうことがあること、そもそもC言語をコンパイルしてバイナリを生成するのが手間であること、WebAssemblyはサンドボックスによって分離されているため柔軟性が低い、などの従来の課題を解決する手段として提供されるものです。

Bunが提供する機能は、共有メモリを用いてJavaScriptからC言語をコンパイルして実行することで、ほぼ呼び出しのオーバーヘッドなく呼び出せると説明されています。

下記はサンプルとなるC言語のコード。乱数を返します。

上記のCのコードをコンパイルして呼び出すためのJavaScriptのコード。

実行したところ。

JavaScriptランタイムはNode.js、Deno、Bunなどのソフトウェアだけでなく、CloudflareやAWSなどサービスベンダも入り交じって競争が続いています。その中で各プロダクトともに事実上の標準であるNode.jsとの互換性を守りつつもそれぞれの特徴を出そうとしているところで、今回のBunのC言語サポートもそうした特徴をだそうとする努力の1つのように見えます。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
富士通CTOが注力する「テクノロジーのグローバル展開」は奏功するか
IT関連
2022-01-29 13:07
FIREを実現する4つの道筋、マネーのライフプランの作り方(その1)
IT関連
2021-07-07 04:50
NEC、ジュピターショップチャンネルから「AIリアルタイム字幕システム」を受注
IT関連
2024-03-14 19:15
NECとシスコ、5Gソリューションのグローバル展開で連携
IT関連
2021-04-09 09:52
積水ハウスとNEC、集合住宅における顔認証システムを活用した取り組みで連携
IT関連
2022-08-12 22:41
DNPが誤読の少ない音声合成AI開発 「行って」の読みなど判別可、企業向けに提供
ロボット・AI
2021-06-16 11:45
PoCの問題は技術ではなく人や組織にある–ガートナーがエンジニアの将来を展望
IT関連
2024-04-04 10:48
企業間取引管理の負荷を軽減–ブラックラインに聞く課題とソリューション
IT関連
2024-04-12 06:56
次のAirPodsは「Pro」っぽいデザインに 2022年にはフィットネス対応「AirPods Pro」を計画か?
IT関連
2021-06-02 03:19
Facebook、Oculus端末でのVR広告のテストを開始
アプリ・Web
2021-06-18 17:01
腸の免疫調節に作用するメカニズムを発見し免疫医薬品を開発するアイバイオズが7.7億円を調達
バイオテック
2021-06-12 13:07
増加するQRコードを悪用したフィッシング–難読化や検知回避の手法も
IT関連
2024-01-10 00:06
IBM、433量子ビット搭載の量子プロセッサー「Osprey」を発表
IT関連
2022-11-12 05:58
ニューススタンドのコンセプトを取り入れた職場用アメニティでオフィス勤務に戻るモチベーションを高めるNew Stand
その他
2021-07-14 01:21