Chromium Embedded Framework (CEF) は、オープンソースの、他のアプリケーションからChromiumを使用できるようにしたソフトウェアフレームワークである。、CEFが提供している機能はHTML、CSS、JavaScriptといったWeb系の技術をUIで使用できるようにすることである。
C、C++、Go、Java、Pythonなど、様々な言語のためにライブラリやバインディング (いわゆるラッパーライブラリ)がある。
概要 Chromium Embedded Frameworkには、以前にメンテナンスされていたCEF 1と現行のCEF 3のバージョンが存在する。 しかし、CEF 2はChromium Content APIの登場によって開発が停止したため存在しない。
CEF 1はシングルプロセスで、Chromium WebKit APIに基づいた実装だった。 しかし、開発が続かなかった。
CEF 3はマルチプロセスで、Chromium Content APIに基づいた実装である。メインスレッドとレンダープロセス(BlinkとV8)の通信に非同期通信を用い、Google Chromeに近いパフォーマンスを誇った。 2022年6月の時点で、PPAPIの削除等による理由からPPAPIのメンテナンスはなされていない。これにはChromeの従来のアプリケーションや、ネイティブクライアントサポートのようなChromiumプロジェクトのメインストリームのものも含まれる。しかし、ChromiumのPDFiumによるPDF viewerのサポートは続いている。また、シングルプロセスでの実行はサポートされていないが、デバッグ目的で残されている。
2019年3月16日、バージョン名の付け方が、リリース「CEF 73.1.3+g46cf800+chromium-73.0.3683.75」のような形式から変わった。参考に、同年3月14のリリース名は「CEF 3.3683.1920.g9f41a27」だった。どちらのリリースも、Chromiumのバージョン「73.0.3683.75」をベースとしたものだが、新しいバージョン名の付け方はベースとしたChromiumのバージョン名と同じバージョン名を使用している。
CEFにはCefClientと呼ばれる、C++で記述された、WinAPI、Cocoa、GTK (プラットフォームによって異なる) などを使用したサンプルアプリケーションや、いくつか機能デモが付属している。
なお、ドキュメントはヘッダファイルのあるincludeディレクトリと、リポジトリ内のwikiページにある。
言語バインディング CEFが利用できる本来の言語はCとC++であり、公式が提供するバインディングはJavaだけであるが、いくつかのプロジェクトがバインディングをメンテナンスしている。
ただし、長くメンテナンスされていないものや、リポジトリがアーカイブされてしまっているものもある。
Delphi (CEF1) – DCEF 1 Delphi (CEF3) – DCEF 3 Delphi (CEF3) – CEF4Delphi Dyalog APL (CEF3) – HTMLRenderer Free Pascal (CEF3) - fpCEF3 Go (CEF3) – CEF2go Java (CEF3) – Java Chromium Embedded (JCEF) .NET (CEF1, CEF3) – CefSharp .NET (CEF1) – CefGlue .NET/Mono (CEF3) – Xilium.CefGlue .NET (CEF3) – ChromiumFX Python (CEF1, CEF3) – CEF Python Swift (CEF3) – CEF.swift
これ以外にも、WebKitX CEF3 ActiveXという製品があり、いくつかの言語からも使用できる。
CEFを使用したアプリケーションの例 4D – RDB管理用IDE Adobe Adobe Acrobat Adobe Illustrator – vector graphics editor Adobe Creative Cloud Adobe Dreamweaver – GUIにAdobe Chromium Embeddedを使用 Adobe Edge Animate – マルチメディア制作ツール Adobe Edge Reflow – Webデザインツール Adobe Brackets – 以前はクローズドソースだったIDE AOL Instant Messenger – インスタントメッセンジャー alt:V - Grand Theft Auto Vのためのマルチプレイヤーエンジン Amazon Music Player – Amazon Musicの公式プレーヤー AOL Desktop Autodesk Inventor – 3Dデザインツール: CEFを「マイホーム」機能に使用 Battle.net App – Battle.netの公式クライアント BeamNG.drive – UIレンダリングにCEFを使用 Bitdefender Safepay Browser – インターネットセキュリティーソフト「Bitdefender」の一部 Brackets – 現在はオープンソースであるIDE Desura client – Desuraの公式クライアント Dish World IPTV – 映像ストリーミングのプラットフォーム Dyalog APL – CEFをユーザーコマンドの、]HTML, ]Plot, ]APLCartに使用 Epic Games Launcher – Epic Games Storeの公式クライアント Eve Online launcher – Eve Onlineの公式ランチャー ExpanDrive – ネットワークストレージ等のクライアント Foxmail – Tencentのメールクライアント GOG Galaxy – GOG.comの公式クライアント Google Web Designer Grand Theft Auto Online – Grand Theft Auto Vのためのマルチプレイヤーエンジン Intel AppUp Encapsulator KKBox – 音楽配信プラットフォーム League of Legends launcher – League of Legendsの公式ランチャー LiveCode – マルチプラットフォーム向けのアプリ開発ソフト LockDown Browser - セキュアなブラウザ MATLAB – CEFをuifiguresに使用 MediaMan – CD、DVD、本などのための蔵書管理アプリ Minecraft Launcher – Minecraftの公式ランチャー Multi Theft Auto – Grand Theft Auto: San Andreasのためのマルチプレイヤーエンジン OBS Studioのブラウザプラグイン- 配信、録画用ソフトウェア OnlyOffice – オフィススイートソフト PHP Desktop QuarkXPress – JavaScriptのサポート QQ – インスタントメッセンジャー RAGE Multiplayer – Grand Theft Auto Vのためのマルチプレイヤーエンジン Rockstar Games Launcher – Social Clubの公式クライアント Second Life – メタバース Sling TV – Dish NetworkによるIPテレビサービス Spotify Desktop Client – 音楽配信プラットフォーム StarUML – UMLエディタ Steam client – Steamの公式クライアント Trend Micro Internet Security – ウイルスセキュリティソフト Ubisoft Connect client – Ubisoft Connectの公式クライアント Uniface Unity – ゲームエンジン Unreal Engine – ゲームエンジン Xojo – WindowsにおいてHTMLViewerにCEFを使用
関連項目
Electron Qt WebEngine XULRunner
出典・脚注
外部リンク
GitHub上のリポジトリ